web-dev-qa-db-ja.com

ファイルに影響を与えずに再帰的にchmodディレクトリを適用する方法は?

適用後chmod -Rをディレクトリに追加すると、(ファイルとディレクトリ)内のすべてのアクセス権が変更されます。ファイルを変更せずにディレクトリに実行/検索(x)権限を追加するにはどうすればよいですか?

20
Ivan

findを使用できます。

find ./ -type d -execdir chmod 750 {} +

ここで、750は適用するモードで、「./」は再帰的に検索するディレクトリです。

[〜#〜] edit [〜#〜]:@Gillesとfind(1)のおかげで、追加のセキュリティとパフォーマンスのためにこれを修正しました。

13
ewindisch

この特定のケースでは、Xの代わりにxを使用できます。これは、一部のユーザー(つまり、chmod -R +X my_dir)の実行可能ビットがすでに設定されているディレクトリまたはファイルにのみビットを追加します。

一般に(たとえば、ファイルに影響を与えずにすべてのディレクトリを読み取り可能にする場合)、find-type dとともに使用するか、zsh(またはshopt -s globstarを使用するbash 4)を使用する場合、**/グロブ(両方ともなし) -Rフラグをchmod)に渡します。

9
sepp2k