複雑なパイプしたい(xargs
)
$ コマンド | xargs コマンド
あるコマンドの実行結果を引数にして、さらにコマンド操作したい場合にはxargs
を使います。
パイプとはちょっと違うのですが、、、「複雑なパイプ」と説明しておきます。
ファイルのパーミッションを一括変更したい
1$ find . -type f | xargs -d "\n" chmod 664
2$ find . -type d | xargs --delimiter="\n" chmod 775
xargs
はfind
系の検索コマンドとの組み合わせてよく使います。
find
コマンドとchmod
コマンドを組み合わせて、ファイルのパーミッションを一括して変更できます。
HTMLファイルに限定したい場合は、find . -type f -name "*.html"
とすればOKです。
xargs
の引数は、デフォルトだと空白文字で改行されてしまいます。
--delimiter="\n"
をつけて、ファイル名やディレクトリ名に空白文字が含まれていても改行されないようにしています。