|
xargs(エックスアーグズ)は、UNIX 系オペレーティングシステムに用意されているコマンドで、標準入力を読み込み、それを引数として指定したコマンドを実行する。 == 概要 == xargsは、改行等で区切られた標準入力を読み込み、空白で区切られた1行の文字列へ加工し、それを引数として指定したコマンドへ渡して実行させる。 $ seq 8 | xargs echo '-' - 1 2 3 4 5 6 7 8 ただし、この1行の文字列がシステムで許容される長さを超える場合は、xargsはその文字列を許容の長さになるよう最少の複数に分割し、コマンドを複数回に分けて実行させる。これにより、コマンドが許容の長さを超える引数のリストを受け付けない問題〔GNU Core Utilities FAQ 〕を回避できる。 例えば、以下のようなコマンドは rm /path/ rm `find /path -type f` ''/path'' に多すぎるファイルがあれば「引数リストが長すぎます」というエラーメッセージとともに ''rm'' コマンドは失敗する。しかし ''rm `find /path -type f`'' と機能的には同等な以下のコマンドは失敗しない。 find /path -type f -print0 | xargs -0 rm この例では、''find'' は ''xargs'' への入力としてファイル名の長いリストを出力している。そして、''xargs'' はこのリストをいくつかの部分リストに分割して、それぞれ一回ずつ ''rm'' を呼んでいる。上の方法は機能的に同等な以下の方法より効率的である。これはすべてのファイルに対して一回ずつ ''rm'' を呼ぶことになる。 find /path -type f -exec rm '' \; しかし、最近の ''find'' では ''xargs'' を使った方法と同じことができる。 find /path -type f -exec rm '' + xargs はしばしばたくさんのシェルのバッククォート機能と同じ機能を持っている。しかし、より柔軟で、入力に空白や特殊文字を含む場合にはしばしばより安全でもある。find、locate や grep のような長いリストを出力するコマンドとともによく使われる。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Xargs」の詳細全文を読む スポンサード リンク
|