スポンサーリンク

XARGS(1) FreeBSD 一般コマンドマニュアル XARGS(1)

名称

xargs − 標準入力から引数を読み、コマンドを実行する

書式

xargs [−0opt] [−E eofstr] [

                                  −I replstr [−R replacements]] [−J replstr][−L number] [                          −n number [−x]] [−P maxjobs] [−s size][utility [argument ...]]

解説

xargs コマンドは空白、タブ、改行、EOF (end-of-file) で区切られた文字列を 標準入力から読み込み、 utility にその文字列をつけて実行します。

コマンドラインで指定された引数は、起動のたびに utility に渡されます。この あとに続く引数は xargs の標準入力から得られます。指定されたユーティリティ は標準入力を読み切るまで繰り返し実行されます。

空白、タブ、改行はシングルクォート (‘‘ ’ ’’) やダブルクォート (‘‘"’’) や バックスラッシュ (‘‘\’’) を使って埋め込むことができます。シングルクォート は次のシングルクォートにマッチするまで、改行とシングルクォートを除く全て の文字をエスケープします。ダブルクォートは次のダブルクォートにマッチする まで改行とダブルクォートを除く全ての文字をエスケープします。改行を含む全 ての文字はバックスラッシュでエスケープされます。

オプションは以下のものがあります:

       −0

空白と改行ではなくヌル文字 (‘‘\0’’) を区切りとするように xargs に 指示します。 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
本オプションが指定されると、 xargs は、標準入力から読み込んだデー タを他のすべての引数の後に追加する代りに、このデータを最初の replstr と置き換えます。本オプションは、入力から読み込む引数の数 (−n) や、 xargs が生成するコマンドの大きさ (−s) には影響しませ ん。本オプションは、引数が置かれる場所を実行されるコマンドの中に 移動するだけです。 replstr は、 xargs にとって明確な引数 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 として再 オープンします。 xargs に対話的なアプリケーションを実行させたい場 合に有用です。

−P maxprocs
並列モード。一度に最大 maxprocs まで utility を実行させます。

−p
実行される予定のコマンドを表示し、実行すべきかどうかをユーザに尋 ねます。肯定の応答、つまり POSIX ロケールでは ‘y’ を返すと、表示 したコマンドが実行され、それ以外の応答を返すとコマンドはスキップ されます。プロセスが端末に接続されていない場合は、どのコマンドも 実行されることはありません。

−R replacements
−I
オプションで置換を行う引数の最大数を指定します。 replacements が負の場合、置換対象の引数の数は無制限です。

−s size
utility
に渡すコマンドラインの最大バイト数をセットします。 utility 名の長さ、 utility に渡される引数の長さの和 (終端の NULL も含む)、そして現在の環境がこの値以下になります。 size の現在のデ フォルト値は ARG_MAX - 4096 です。

−t
実行されるコマンドをその実行の直前に標準エラー出力にエコーしま す。

−x
引数の個数が指定した (もしくはデフォルトの) コマンドライン長と合 わない場合、 xargs を強制終了します。

もし utility が指定されていなければ、 echo(1) が使われます。

utility が標準入力を読むプログラムの場合は予期せぬ動作をするかもしれませ ん。

コマンドラインを集められなかったときや utility を起動できなかったとき、 utility がシグナルで終了したとき、もしくは utility が戻り値 255 で終了し たときは、 xargs は (それ以上の読み込みはせずに) ただちに終了します。

診断

xargs は、何もエラーが起こらなければ、戻り値 0 で終了します。 utility が 見つからなかった場合は、戻り値 127 で終了します。 utility が実行できな かった場合は戻り値 126 で終了します。その他のエラーでは戻り値 1 で終了し ます。

関連項目

echo(1), find(1), execvp(3)

規格

xargs ユーティリティは IEEE Std 1003.2 (‘‘POSIX.2’’) 互換です。 −J, −o, −P, −R オプションは非標準の FreeBSD 拡張であり、他のオペレーティングシス テムでは利用できないかもしれません。

歴史

xargs コマンドは PWB UNIX で登場しました。

バグ

引数の数や環境の大きさが増加するような他のコマンドの起動を utility が試み る場合、 execvp(3) が E2BIG で失敗する危険があります。

xargs ユーティリティは、 −I−J オプションで文字列の比較を行う時に、マ ルチバイト文字を考慮しません。このため、いくつかのロケールでは誤った結果 を生ずることがあります。

FreeBSD 10.0 August 2, 2004 FreeBSD 10.0

スポンサーリンク