Linux で特定の名前を持つ任意のファイルに CHMOD コマンドを再帰的に適用するにはどうすればよいですか?

Linux で特定の名前を持つ任意のファイルに CHMOD コマンドを再帰的に適用するにはどうすればよいですか?

特定の名前を持つファイルにのみ CHMOD コマンドを再帰的に適用する方法を知りたいですか?

chmod 755 -R filename

filename上記のようなものですが、サブフォルダー内に存在するものすべてに適用されるはずです。

答え1

これにより、現在のディレクトリから filename という名前のすべてのファイルが再帰的に検索され、 に渡されますchmod

find -name filename | xargs chmod 755

findより高度なオプションについては、およびのマニュアルページを参照してくださいxargs。特に、名前にスペースが含まれるファイルに関するエラーが発生した場合は、に-print0対応するフラグと を確認してください。-0xargs

答え2

find には同じことを実行する exec パラメータもあります。

find . -name filename -exec chmod 755 {} \;

答え3

find 演算子を使用して一度に複数のファイルに対して+実行すれば、両方の長所を活かすことができます。chmod

find . -name filename -exec chmod 755 '{}' +

常に'を で囲む必要があります{}。そうしないと、スペースを含むファイル名によって問題が発生する可能性があります。この場合、問題にはなりませんが、私はそうする癖があります。

関連情報