私は~/bin自分PATHのシステムのすべてのシェルからアクセスできるお気に入りのデフォルトを含む短いスクリプトを作成し、保持しています (さまざまな時期に Dash、Bash、Fish を使用しています)。それは小さいです:
!/usr/bin/env sh
exec xargs -rd\\n "$@"
スクリプトは、標準のデフォルトxを期待するスクリプトとの競合を避けるために呼び出されます。xargs自分自身を置き換えようとする場合はxargs、お勧めしませんが、 your~/binが system よりも PATH の上位に表示されるようにしてくださいxargs。私のシステムには だけが存在するwhich -a xargsことを教えてくれるので、ホーム ディレクトリ は次のようにその前に表示されなければならないことがわかっています。xargs/usr/bin/xargs/home/stephen/bin
$ echo "$PATH"
/home/stephen/bin:...:/usr/bin:...
find|x grepいずれにせよ、すべてのプログラムからアクセスできるスクリプトとして、これは、や などのことができることを意味しますsh -c 'x ...'。
Bash を使用していて、エイリアスが必要な場合は、次のものを使用することもできます。
alias x=xargs -rd\\n\ # \n delim, don't run on empty in, + alias expansion
エイリアス展開の末尾のスペースに注意してください。これにより、エイリアスをチェーンできます。たとえば、上記のエイリアスに加えて、grep のエイリアスがあったg場合、次のように動作します。
# extended regex, skip binaries, devices, sockets, & dirs, colored, & line
# -buffered. use a non-canonical alias instead of GREP_OPTIONS which may wreck
# assuming scripts
alias g='grep -EID skip -d skip --color=auto --line-buffered'
$ find|x g foo
x/スクリプトのxargsアプローチだけでは、これを効果的に行うことはできません。
私はシェルを切り替えてほとんど 1 台の PC を使用するので、必要ないくつかのエイリアスを の個別のスクリプトとして保持し、シェルに依存しないエイリアスを、をソースと~/binするヘルパー スクリプトに保持します。これらはすべて Bash のようなエイリアス構文をサポートするためです。 . 定期的に複数の PC で作業している場合は、代わりにこれらを 1 つに統合しようとするでしょう。~/.sh_aliases~/.shrc~/.bashrc~/.config/fish/config.fish~/.bashrc