web-dev-qa-db-ja.com

findコマンドで見つかった複数のファイルの権限を変更するにはどうすればよいですか?

多数のファイルを含むディレクトリがあります。ファイルの一部には755権限があり、他の部分には644権限があります。 755権限のあるファイルを644に変換したい。次の行をディレクトリ自体から実行してみました。

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

ただし、その結果、アクセス許可はディレクトリ自体に対してのみ変更され、変更後はファイルのアクセス許可が変更されていないことがわかりました。私は何かを逃していますか?

11
Eugene S

わかりました。問題を見つけたようです。 {}\;の間に必須のスペースが必要であると思われるため、コマンドは次のようになります。

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

のではなく:

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

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

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