No.053テキスト処理

xargs

エックスアーグス・標準入力の引数化実行

知識レベル 実践注意一般ユーザーで使える

標準入力の項目をまとめてコマンド引数へ変換し、後続コマンドを実行します。大量ファイル処理やパイプ連携で有用ですが、区切りの扱いが重要です。

答えよく使う形

  1. 入力項目が引数列へ組み立てられます
  2. ヌル終端入力を受け取り、安全に項目を解釈します
  3. 1回の実行に渡す引数数を制限します

注意危険度は中程度です。

visitor@goodly: ~

$ printf 'anbn' | xargs echo

a b

$ find . -type f -print0 | xargs -0 grep ERROR

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

覚える順番の中でLPIC-1・33 駅め / 106

どんなコマンド?

こんなときに

一覧出力を別コマンドの引数へ渡したい時、大量項目をまとめて処理したい時に使います。

xargsは、標準入力から受け取った項目を引数として組み立て、別のコマンドを実行する道具です。find結果や一覧出力を、rm、grep、chmodなどの引数へ渡す時に使います。

利点は、大量項目を効率よくまとめて処理できることです。一方で、空白や改行を含む名前に弱い既定動作には注意が必要です。安全性を重視するなら、find -print0とxargs -0の組み合わせを基本形として覚えるべきです。

また、破壊的コマンドと組み合わせる時は特に注意が必要です。まずechoやprintfを使って、実際にどの引数が組み立てられるか確認してから本番実行へ進むのが安全です。

書き方とオプション

組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。

$ xargs

使用例と実行結果

行を押すとコピーできます。

a b
入力項目が引数列へ組み立てられます。

まず安全に試す

3分ミッション

手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。

0 / 1

つまずいたとき

空白を含むファイル名で誤動作した

原因既定区切りで分割されました。

こうするfind -print0とxargs -0を使います。

一気に削除してしまった

原因実行前の確認を省きました。

こうするまずxargs echoで引数の形を確認してから本番コマンドへ差し替えます。

終わったときの数(戻り値)

$ echo $?

  • 0正常終了。後続コマンドの実行に成功しました。
  • >0入力解釈や後続コマンド実行で問題がありました。

気をつけることと入れ方

気をつけること

危険度は中程度です。空白や改行を含む名前を誤分割すると、意図しない対象へコマンドが実行されます。破壊的処理では必ず-print0と-0を検討してください。

環境による違い

POSIXで基本機能は標準化されています。-0は広く普及していますが、ヌル終端連携を前提に書くなら対象環境で確認してください。

確かめた環境2026-04-09 に確認

よくある質問

find -execとの違いは何ですか。

xargsは大量引数を効率よくまとめやすく、find -execは区切り安全性を保ちやすいです。用途で選びます。

資格試験では

  • LinuC レベル1大事1.03.3 ストリーム、パイプ、リダイレクトの使用xargsは、パイプラインを組み立てて出力を流す技能と密接に関わります。
  • LPIC-1大事103.4 ストリーム、パイプ、リダイレクトの使用xargsは、標準入力と標準出力を使って複数コマンドを連携させる技能と関係します。
  • 共通基礎大事Linuxコマンド基礎

xargs を最後まで読みました。

Linux コマンド辞典に戻る141 / 144

Goodly のメニュー