xargs(1)

標準入力から生成したコマンドラインを実行する

構文

xargs [オプション] [コマンド [初期引数]]

オプション

-a, --arg-file=FILE標準入力からではなくファイルFILEから読み込む
--null, -0入力される項目の区切りとしてホワイトスペース(空白、改行)ではなくNULL文字を使用する(引用符やバックスラッシュを特殊文字として扱わない)
-delimiter=DELIM, -d DELIM入力される項目の区切りとしてDELIMを使用する
-E EOFSTRファイル終端文字としてEOFSTRを使用する(EOFSTR以降の入力は無視される)
--eof[=EOFSTR], -e[EOFSTR]ファイル終端文字としてEOFSTRを使用する(POSIX非準拠なので-Eを推奨)
-I REPLACE-STR構文に初期引数が指定されているとき、初期引数内のREPLACE-STRを標準入力から読み込まれたものに差し替える(「-x」および「-L 1」が自動的に指定される)
-i[REPLACE-STR], --replace[=REPLACE-STR]REPLACE-STRが指定されていれば-Iと同じで、REPLACE-STRが指定されていなければ「-I{}」と同じ
-L MAX-LINESコマンドライン1つにつき最大MAX-LINES行の入力を使用する(「-x」が自動的に指定される)
-l[MAX-LINES], --max-lines[=MAX-LINES]-Lオプションと同じだが、MAX-LINES引数を指定しなくてもよい(その場合はMAX-LINESは1とみなされる)
-n MAX-ARGS, --max-args=MAX-ARGSコマンドライン1つにつき最大MAX-ARGS個の引数を使用する
-p, --interactiveコマンドライン1つごとに実行するかどうかを問い合せる(「-t」が自動的に指定される)
-r, --no-run-if-empty標準入力が全部空白の場合はコマンドを実行しない
-s MAX-CHARS, --max-chars=MAX-CHARSコマンドライン1つにつき最大MAX-CHARS文字の入力を使用する
-t, --verbose実行前にコマンドラインを標準エラー出力に出力する
--show-limitsコマンドラインの長さの上限を表示する
-x, --exit生成されたコマンドラインが上限を超えていたら終了する
-P MAXPROCS, --max-procs=MAXPROCSMAXPROCSプロセスまで同時に実行する(デフォルトは1。0ならできるだけ多くのプロセスを同時に実行しようとする)

説明

指定されたコマンドと初期引数に、標準入力から読み込んだ引数をつけてコマンドラインを生成し、実行する。コマンドが指定されなかった場合はechoに送られる。

使用例

testdirディレクトリ内にある「*.rb」ファイルそれぞれの先頭10行を表示する。

$ ls testdir/*.rb | xargs head

testdirディレクトリ内のファイルを、/tmpディレクトリ以下に拡張子「.bk」を付けてコピーする。

$ ls testdir | xargs -I{} cp testdir/{} /tmp/{}.bk