複雑なパイプしたい(xargs

$ コマンド | xargs コマンド

あるコマンドの実行結果を引数にして、さらにコマンド操作したい場合にはxargsを使います。 パイプとはちょっと違うのですが、、、「複雑なパイプ」と説明しておきます。

ファイルのパーミッションを一括変更したい

1$ find . -type f | xargs -d "\n" chmod 664
2$ find . -type d | xargs --delimiter="\n" chmod 775

xargsfind系の検索コマンドとの組み合わせてよく使います。 findコマンドとchmodコマンドを組み合わせて、ファイルのパーミッションを一括して変更できます。 HTMLファイルに限定したい場合は、find . -type f -name "*.html"とすればOKです。

xargsの引数は、デフォルトだと空白文字で改行されてしまいます。 --delimiter="\n"をつけて、ファイル名やディレクトリ名に空白文字が含まれていても改行されないようにしています。