XARGS
Section: User Commands (1)
索引
jman
BSD mandoc
索引
名称
xargs
- 標準入力から引数を読み、コマンドを実行する
索引
書式
[-0opt
]
[-E eofstr
]
[-I replstr
[-R replacements
]
]
[-J replstr
]
[-L number
]
[-n number
[-x
]
]
[-P maxjobs
]
[-s size
]
[utility [argument ...
]
]
索引
解説
コマンドは空白、タブ、改行、EOF (end-of-file) で区切られた文字列を標準入力
から読み込み、
utility
にその文字列をつけて実行します。
コマンドラインで指定された引数は、起動のたびに
utility
に渡されます。
このあとに続く引数は
の標準入力から得られます。
指定されたユーティリティ
は標準入力を読み切るまで繰り返し実行されます。
空白、タブ、改行はシングルクォート
(`` ' '')
やダブルクォート (``"'') やバックスラッシュ (``\'')
を使って埋め込むことができます。
シングルクォートは次のシングルクォートにマッチするまで、
改行とシングルクォートを除く全ての文字をエスケープします。
ダブルクォートは次のダブルクォートにマッチするまで
改行とダブルクォートを除く全ての文字をエスケープします。
改行を含む全ての文字はバックスラッシュでエスケープされます。
オプションは以下のものがあります:
- -0
-
空白と改行ではなくヌル文字 (``\0'') を区切りとするように
に指示します。
find(1)
の
-print0
とともに用います。
- -E eofstr
-
eofstr
を論理的な EOF マーカとして使用します。
- -I replstr
-
utility
への引数の中に
replstr
が 1 回以上最大
replacements
回まで (あるいは、
-R
フラグが指定されていない場合は 5 回まで)
出現したとき、出現した部分を入力行の内容全体に置換しながら
utility
を各入力行に対して実行します。
置換が終わったあとの結果の引数は、255バイトを超えることは許されません。
この制限は、作成される
utility
への引数に
replstr
を含んだ引数を 255 バイトになるまでできる限り連結することで
実装されています。
この 255 バイトの制限は、
replstr
を含まない
utility
への引数には適用されず、さらに、
utility
そのものは置換の対象にはなりません。
このオプションは、
-x
オプションを暗黙のうちに実行します。
- -J replstr
-
本オプションが指定されると、
は、標準入力から読み込んだデータを他のすべての引数の後に追加する代りに、
このデータを最初の
replstr
と置き換えます。
本オプションは、入力から読み込む引数の数
(-n
)
や、
が生成するコマンドの大きさ
(-s
)
には影響しません。
本オプションは、引数が置かれる場所を
実行されるコマンドの中に移動するだけです。
replstr
は、
にとって明確な引数
argument
である必要があります。
これは、例えば引用された文字列の中にある場合には、解釈されません。
さらに、最初の
replstr
のみが置き換えられます。
例えば、次のコマンドは、
現在のディレクトリにある大文字で開始するファイルとディレクトリを、
destdir
へコピーします:
/bin/ls -1d [A-Z]* | xargs -J % cp -rp % destdir
- -L number
-
number
行読み込むたびに
utility
を実行します。
EOF に到達したとき
number
行よりも少ない行数しか読み込んでいない場合は、
読み込み終わっている行を使って
utility
を呼びだします。
- -n number
-
各
utility
実行時に標準入力から拾う引数の最大数を設定します。
もし計算されたバイト数が、指定された
size
を越えた場合 (
-s
オプション参照) や
utility
の最後の実行時に残った引数が
number
個以下の場合、
utility
は、標準入力から読み込んだ引数のうち
number
より少数しか使いません。
number
の現在のデフォルト値は 5000 です。
- -o
-
子プロセスによるコマンド実行前に、標準入力を
/dev/tty
として再オープンします。
に対話的なアプリケーションを実行させたい場合に有用です。
- -P maxprocs
-
並列モード。
一度に最大
maxprocs
まで
utility
を実行させます。
- -p
-
実行される予定のコマンドを表示し、実行すべきかどうかをユーザに
尋ねます。肯定の応答、つまり POSIX ロケールでは
`y'
を返すと、表示したコマンドが実行され、それ以外の応答を返すと
コマンドはスキップされます。
プロセスが端末に接続されていない場合は、どのコマンドも実行される
ことはありません。
- -R replacements
-
-I
オプションで置換を行う引数の最大数を指定します。
replacements
が負の場合、置換対象の引数の数は無制限です。
- -s size
-
utility
に渡すコマンドラインの最大バイト数をセットします。
utility
名の長さ、
utility
に渡される引数の長さの和 (終端の
NULL
も含む)、そして現在の環境がこの値以下になります。
size
の現在のデフォルト値は
ARG_MAX
- 4096 です。
- -t
-
実行されるコマンドをその実行の直前に標準エラー出力にエコーします。
- -x
-
引数の個数が指定した (もしくはデフォルトの) コマンドライン長と
合わない場合、
を強制終了します。
もし
utility
が指定されていなければ、
echo(1)
が使われます。
utility
が標準入力を読むプログラムの場合は予期せぬ動作をするかもしれません。
コマンドラインを集められなかったときや
utility
を起動できなかったとき、
utility
がシグナルで終了したとき、もしくは
utility
が戻り値 255 で終了したときは、
は (それ以上の読み込みはせずに) ただちに終了します。
索引
診断
は、何もエラーが起こらなければ、戻り値 0 で終了します。
utility
が見つからなかった場合は、
戻り値 127 で終了します。
utility
が実行できなかった場合は
戻り値 126 で終了します。その他のエラーでは戻り値 1 で終了します。
索引
関連項目
echo(1),
find(1),
execvp(3)
索引
規格
ユーティリティは
St -p1003.2
互換です。
-J , o , P , R
オプションは非標準の
Fx 拡張であり、他のオペレーティングシステムでは利用できないかもしれません。
索引
歴史
コマンドは PWB UNIX で登場しました。
索引
バグ
引数の数や環境の大きさが増加するような他のコマンドの起動を
utility
が試みる場合、
execvp(3)
が
Er E2BIG
で失敗する危険があります。
ユーティリティは、
-I
と
-J
オプションで文字列の比較を行う時に、マルチバイト文字を考慮しません。
このため、いくつかのロケールでは誤った結果を生ずることがあります。
索引
Index
- 名称
-
- 書式
-
- 解説
-
- 診断
-
- 関連項目
-
- 規格
-
- 歴史
-
- バグ
-
Time: 07:06:23 GMT, January 12, 2009