xargs
テキスト処理
書き方
[cmd] | xargs [cmd2]入ってきた行を別の命令の引数に変えて渡します。名前に空白があると壊れるので、find -print0 と xargs -0 を組ませます。
よく使うオプション
| オプション | 意味 |
|---|---|
| -n | How many arguments to hand over per run |
| -I | Put the argument where a placeholder such as {} sits |
| -0 | Read NUL-separated input, to pair with find -print0 |
| -P | Run that many copies at once |
| -r | Do not run the command at all on empty input |
| -t | Print each command before running it |
例
find . -name '*.log' -print0 | xargs -0 rmDeletes them even when names hold spaces.
xargs -n1 -P4 curl -O < urls.txtFour downloads at a time.
ls *.txt | xargs -I{} mv {} old/{}Uses {} where the file name goes.
パイプでつないで使うのが本来の形です。ひとつで全部やるより、三つつないだ方が短くなります。
読み方
- 角括弧 [ ] は省いてよい部分です。
- 三点 … は複数並べられるという意味です。
- オプションは大文字小文字を区別します — -r と -R が別物のコマンドもあります。
よくある質問
Q. xargs は何をしますか。
入ってきた行を別の命令の引数に変えて渡します。名前に空白があると壊れるので、find -print0 と xargs -0 を組ませます。
Q. どう打ちますか。
[cmd] | xargs [cmd2] — 角括弧は省いてよい部分です。
Q. よく使うオプションはいくつですか。
ここにまとめたのは6個です。全部は man xargs にあります。このコマンドはテキスト処理の仲間です。
関連するコマンド
man ページ: man xargs