適用後chmod -R
をディレクトリに追加すると、(ファイルとディレクトリ)内のすべてのアクセス権が変更されます。ファイルを変更せずにディレクトリに実行/検索(x
)権限を追加するにはどうすればよいですか?
findを使用できます。
find ./ -type d -execdir chmod 750 {} +
ここで、750は適用するモードで、「./」は再帰的に検索するディレクトリです。
[〜#〜] edit [〜#〜]:@Gillesとfind(1)のおかげで、追加のセキュリティとパフォーマンスのためにこれを修正しました。
この特定のケースでは、X
の代わりにx
を使用できます。これは、一部のユーザー(つまり、chmod -R +X my_dir
)の実行可能ビットがすでに設定されているディレクトリまたはファイルにのみビットを追加します。
一般に(たとえば、ファイルに影響を与えずにすべてのディレクトリを読み取り可能にする場合)、find
を-type d
とともに使用するか、zsh(またはshopt -s globstar
を使用するbash 4)を使用する場合、**/
グロブ(両方ともなし) -R
フラグをchmod
)に渡します。