インターネット

忘れてもいいように書く

xargsコマンド

【前提知識】

・読み方は「エックスアーグズ」

 

【本題】

・基本的な使い方:パイプでつなぎ、前のコマンドの標準出力をxargsで指定した別のコマンドの標準入力として使用できるようにするコマンド

 →コマンド1 | xargs コマンド2

  →find . -type f | xargs ls -lap

 

・よく使うオプション

 → -0  入力される文字の区切り文字をホワイトスペース(空白や改行のこと)ではなく、NULL文字を使用する(引用符、バックスラッシュを特殊文字として扱わない)

 →下記引用

find . -name fileA -print0 | xargs -0 grep abc


とすることで、ファイル名に絶対ならないヌル文字を区切り文字にして、どんなファイル名でも正常動作できるようになります。

 

・よくやる組み合わせ

 →find . -type f -name "*.html" -print 0 | xargs -0 grep "検索したいファイル名"

  →find -print 0で改行ではなく、NULLバイトで標準出力される

 

【感想】

・イメージとしてはパイプに近い(標準出力を受け取って次のコマンドの標準入力)

が、パイプで渡せないコマンド(rmとか)のときに役立つ

 

【参考】

・基本的な使い方

xargsコマンドで覚えておきたい使い方・組み合わせ7個(+1個) | 俺的備忘録 〜なんかいろいろ〜

 

・パイプじゃだめな理由

xargs コマンド | コマンドの使い方(Linux) | hydroculのメモ

 

・オプション諸々

Linuxコマンド集 - 【xargs】標準入力から生成したコマンドラインを実行する:ITpro