xargs の使い方

入力をコマンドの引数にする

書き方

xargs [-I {}] コマンド

パイプで受け取った一覧を、別のコマンドの引数として渡します。

よく使うオプション

オプション意味
-I {}受け取った 1 行ずつを {} の場所に入れて実行する
-n 数1 回のコマンドに渡す引数の数
-0区切りを NUL 文字にする(find -print0 と組み合わせ、空白のある名前を正しく扱う)
-r入力が空のときはコマンドを実行しない

例

$ find . -name '*.tmp' | xargs rm

見つけたファイルの一覧を rm の引数として渡し、まとめて消します。

$ find . -name '*.log' -print0 | xargs -0 gzip

名前に空白があっても正しく渡せる形で、ログを圧縮します。

$ cat hosts.txt | xargs -I {} ping -c 1 {}

ファイルに書いたホストに、1 台ずつ ping を打ちます。

よくある間違い・注意

  • 名前に空白のあるファイルは、xargs が別々の引数に分けてしまいます。find -print0 と xargs -0 を組み合わせます。

実際に打って練習する

Linux レベル1 コースの Lv27「流れを引数に xargs」で覚えます(第2章 宝探し(検索とテキスト処理))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜16 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

Linux コマンド一覧(LinuC レベル1 の範囲)へ戻る