xargsとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > xargsの意味・解説 

xargs

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/07/28 18:42 UTC 版)

xargs(エックスアーグズ)は、UNIXオペレーティングシステムに用意されているコマンドで、標準入力を読み込み、それを引数として指定したコマンドを実行する。

概要

xargs は、改行等で区切られた標準入力を読み込み、空白で区切られた1行の文字列へ加工し、それを引数として指定したコマンドへ渡して実行させる。

% (echo Bravo.txt ; echo Charlie.txt) | xargs -- chmod a-x Alpha.txt

というコマンドは次のものと等価である。

% chmod a-x Alpha.txt Bravo.txt Charlie.txt

上記の例は echo で生成させたファイルパスを xargs に与えるものだが、find コマンドで階層的に検索して取得したファイルパスを xargs に与えることもできる。

% find path -type f -name '*.txt' | xargs -- chmod a-x

ただし、find コマンドが出力するファイルパスのリストはとても長くなる場合がある。xargs コマンドが内部的に発生させる chmod コマンドの1行が長すぎることになり、chmod コマンド実行失敗する。

find コマンドが例えば200個のファイルパスを出力した場合、xargs が内部的に生成する chmod コマンドの1行はこんな感じになる。

 % chmod a-x filepath1 filepath2 … filepath200

この場合、xargs が内部的に生成した chmod コマンドを実行することは出来ないかもしれない。

ただし、発生させるコマンドがこの例のように chmod コマンドであれば、内部的に発生させるコマンドの長さを調整する機能を用いることで回避できるだろう。

% find path -type f -name '*.txt' | xargs -n 3 -- chmod a-x

この例では、xargsfind コマンドが出力した200個のファイルパスを3個ごとに(3個に満たない場合はその個数だけで)chmod を呼び出す。

% chmod a-x filepath1 filepath2 filepath3
% chmod a-x filepath4 filepath5 filepath6
                   :
% chmod a-x filepath199 filepath200

もとのコマンドとは異なりはするが、find が出力したファイルを全部のパーミッションを変更するという目的は果たせる。

ただ、このような方法が使えるかどうかは内部的に発生させるコマンド次第である。chmod でなく、例えば tar コマンドの場合は使えない。

xargs コマンドはしばしばたくさんのシェルバッククォート機能と同じ機能を持っている。しかし、より柔軟で、入力に空白や特殊文字を含む場合にはしばしばより安全でもある。

脚注

関連項目

外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「xargs」の関連用語

1
異なるファイル名のいずれかを探すfind . -type f \ -lsこの例では名前が 'jsp' または 'java' で終わるファイルを探す。括弧が必要であることに注意。また、"or" を "o" と略記することも可能。大抵のシェルでは丸括弧を "\" のようにエスケープする必要がある。-ls と -or は全てのバージョンの find で使えるわけではない。コマンド実行find /var/ftp/mp3 -type f -iname '*.mp3' -exec chmod 744 {} \;この場合、ディレクトリ /var/ftp/mp3 にあって名前が「.mp3」や「.MP3」などで終わるすべてのMP3ファイルについて、ファイルパーミッションを変更する。アクションは -exec chmod 744 {} \; の部分で指定されている。MP3ファイルそれぞれについて、chmod 744 {} というコマンドの {} の部分をファイル名に置き換えたものが実行される。セミコロンがコマンドの終わりを示している。なお、744 というパーミッションは普通に記せば rwxr--r-- であり、ファイル所有者は完全なアクセスが可能だが、それ以外のユーザーは読むことしかできない。xargsとの連携find /var/ftp/mp3 -type f -iname '*.mp3' -print | xargs chmod 744上の-execでは、該当するファイル1つにつき一度ずつプロセスを起動することとなり、効率が悪い。いったん-printで出力し、xargsによってコマンドラインとして渡せるだけの量をまとめて渡すことで、効率化することができる。なお、GNUプロジェクト版のfindには、ファイル名をヌル文字区切りで出力する-print0オプションがあり、xargs -0で解釈させることで、ホワイトスペースの入ったファイル名についても正常に処理可能となる。文字列検索
32% |||||

2
12% |||||

3
12% |||||

4
10% |||||

5
10% |||||

6
10% |||||

7
10% |||||

8
10% |||||

9
10% |||||

10
10% |||||

xargsのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



xargsのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのxargs (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS