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


18

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

回答:


13

findを使用できます

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

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

編集:@Gillesとfind(1)のおかげで、セキュリティとパフォーマンスを向上させるためにこれを修正しました。


@Gillesありがとう、Unixツールについて何か新しいことを学ぶのはそれほど頻繁ではありません:-)それは素晴らしいです。また、検索ドキュメントを読んで、代わりに-execdirを実際に使用する必要があります。
ewindisch

7

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

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


@Gilles:いいですね、答えに追加しました。
sepp2k

1
「xの代わりにXを使用します。これは、一部のユーザーに既に実行可能ビットが設定されているディレクトリまたはファイルにのみビットを追加します」-ありがとう!私はこのことをたくさん見逃しました!
イヴァン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.