特定ファイルに対してコマンドの効果を付与したい
権限付与するとか、グループ追加とか、1個1個ファイルやディレクトリにコマンド打ってらんないですよね。農家じゃないんだから。『1個1個丁寧にファイルに権限を付与しました』とか言って、『我々が作りました』的な写真を載せて納品したって別に顧客信頼度上昇とか特にないですから。むしろ、絶対抜けてる可能性あって怖いよってなります。
xargsコマンド
標準入力やファイルからリストを読み込み、コマンドライン文字列を作成して実行する
というコマンドです。
コマンドライン文字列ってなんだよ。
簡単にいうと、コマンドラインで使える文字列、つまり、引数として使える文字列ということ。
受け取った結果の文字列をxargsの引数になっているコマンドの引き数に渡し実行するということ。
便利ですね。
使用例
こちらは、findでカレントディレクトリ以降のファイルだけに対してオーナー、グループ、アナザーの実行権限を剥奪させるコマンドです。パイプ | を使ってこんな感じにやれるとすごい楽ですね。他にも、findコマンドと組み合わせて、ヒットする文字列に対してgrepかけるという方法で調べたいファイルの中身やファイルを調べることができます。
$ find ./ -type f | sudo xargs chmod a-x
$ find ./ -type f | xargs grep 検索したい文字列