Centos 4のツリーの権限を変更して、ディレクトリからすべてのディレクトリの実行権限を再帰的に追加したい。通常のchmodを使用すると、ディレクトリ以外のファイルも変更されます。
chmod -R o+x /my/path/here
ディレクトリにのみ影響を与えるにはどうすればよいですか?
-type d
(directories)に対してfind
を実行し、-exec
プライマリを使用してchmod
をフォルダーに対してのみ実行します。
find /your/path/here -type d -exec chmod o+x {} \;
目的のオブジェクトに対してのみ実行されるようにするには、最初にfind /your/path/here -type d
だけを実行します。見つかったディレクトリを出力するだけです。
Wikipediaの コマンドラインの例-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
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"