findコマンドを使用して見つかった複数のファイルの権限を変更するには?

findコマンドを使用して見つかった複数のファイルの権限を変更するには?

多くのファイルを含むディレクトリがあります。一部のファイルには755権限があり、他のファイルには権限があります644。権限のある755ファイルを644

find . -perm 755 -exec chmod 644 {}\;

しかし、結果としてディレクトリ自体に対する権限のみが変更され、再度変更した後もファイル権限は同じままになることがわかりました。私は何を逃したことがありませんか?

答え1

さて、問題を見つけたようです。一つはありそうです。強制スペースの間にあるので、{}コマンド\;は次のようになります。

find . -perm 755 -exec chmod 644 {} \;

代わりに:

find . -perm 755 -exec chmod 644 {}\;

また、ディレクトリ権限の変更の問題はフラグを追加することで解決できるため、-type f次のようになります。

find . -type f -perm 755 -exec chmod 644 {} \;

関連情報