ディレクトリでのみ再帰chmodを実行するにはどうすればよいですか?


31

Centos 4のツリーの権限を変更して、ディレクトリからすべてのディレクトリの実行権限を再帰的に追加します。通常のchmodを使用すると、ディレクトリ以外のファイルも変更されます。

chmod -R o+x /my/path/here

ディレクトリにのみ影響を与えるにはどうすればよいですか?

回答:


48

実行find上の-type dディレクトリを含む)-execを実行するために、プライマリchmodのみのフォルダに:

find /your/path/here -type d -exec chmod o+x {} \;

確実に目的のオブジェクトでのみ実行されるようにするには、find /your/path/here -type d最初に実行するだけです。見つかったディレクトリを単に出力します。


{} \; しますか?
シュレーケル

2
この回答を参照してください@Srekel askubuntu.com/questions/339015/...
MADforFUNandHappy

17

ウィキペディアのコマンドラインの例-chmodを参照してください。

chmod -R a-x+X directory    remove the execute permission on all files in 
                            a directory tree, while allowing for directory browsing.

ダニエルによって追加されたように:これはあなたの場合に動作するはずです:

chmod -R o+X directory

これは、ディレクトリ内のファイルの現在の許可に影響します。
scriptmonster

@scriptmonsterの引用された行はこの場合は間違っていますがchmod -R o+X directory、OPで機能するはずです。
ダニエルベック

1
私のように違いを知りたい人のために、X は、少なくとも1つの実行許可ビットが既に設定されているファイル(ユーザー、グループ、またはその他)に実行許可を適用します。一般的なケースでは、受け入れられた答えの方が優れています。
ixe013 14年

1
find /home/mydir -type d | xargs chmod ugo+rx

これはCentOS6で機能しますが、上記のfind -execでは機能しません。基本的には、ディレクトリのリストをxargsコマンドにパイプし、chmodに送信します。次に、chmodはディレクトリのユニバーサル読み取りおよび実行(検索)を設定します。自宅のすべてのユーザーに対してこれを行うには、sudoを使用します。

sudo sh -c "find /home/ -type d | xargs chmod ugo+rx"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.