Xargs - 標準入力から引数を構築するコマンド
はじめに こんにちは!今回はxargsコマンドについて解説します。 xargsは標準入力から引数を構築して、別のコマンドに渡すコマンドです。findやgrepの結果を他のコマンドで処理したり、大量のファイルを一括操作したり、日々の運用を効率化する強力なコマンドですね。 「パイプの後ろでファイル名を受け取る」って感じです。実は複雑に見えますが、慣れると超便利ですよ。 xargsコマンドとは xargsは、標準入力から読み込んだ行をコマンドの引数に変換して実行する外部コマンドです。 通常のパイプ(|)は標準入力としてテキストを受け渡しますが、xargsはそれをコマンドの引数に変換します。find、grep、echoなどの結果をファイル名として他のコマンドに渡したい場合に非常に便利。大量のファイル操作を効率的に行えます。 基本構文 1 xargs [オプション] コマンド 標準入力から引数を読み込んで、指定したコマンドに渡します。デフォルトでは標準入力の各行が引数になります。 主なオプション オプション 説明 -I {} 占有文字列(デフォルト: スペース区切り) -n NUM 1回に渡す引数の最大個数 -d DELIM 区切り文字を指定(デフォルト: スペース/改行) -0 NUL文字で区切られた入力を処理 -p 実行前に確認を取る(prompt) -r 標準入力が空の場合は実行しない -t 実行するコマンドを表示 --no-run-if-empty 入力がない場合は実行しない 使用例 例1: findの結果をrmで削除 1 find . -name "*.tmp" | xargs rm 実行結果: 1 (マッチしたすべての.tmpファイルが削除される) 最も一般的な使い方。findで見つけたファイルをrmで一括削除。 例2: 確認付きで削除(-p オプション) 1 find . -name "*.tmp" | xargs -p rm 実行結果: 1 rm file1.tmp file2.tmp ? -pで実行前に確認。危険な操作の時に便利。 ...