たくさんのファイルとディレクトリをchmod
したいです。 x
はディレクトリのリストを示し、通常のファイルに対して実行するので、ファイルにはrw
を適用し、ディレクトリにはrwx
を適用します。 chmod
コマンドのみを使用することは可能ですか?
そうでない場合、最も便利な方法は何ですか?
chmod -R 770
通常のファイルを実行可能にしたくないので、可能性はありません。
私は時々、単一のfind
コマンドを使用してこれを行います。醜いが効果的。
find /p/a/t/h \( -type d -exec chmod 755 {} \; \) -o \( -type f -exec chmod 644 {} \; \)
ManページからXパーミッションを使用します:
ファイルがディレクトリの場合、または実行/検索ビットが元の(変更されていない)モードに設定されている場合は、実行/検索ビット。パーマシンボル "X"を使用した操作は、オペシンボル "+"と組み合わせた場合にのみ意味があり、それ以外の場合はすべて無視されます。
したがって、次のようにします。
chmod -R a-x [directory]
chmod -R a+rwX [directory]
これにより、すべてのファイルとディレクトリから実行ビットが削除され、その後すべてに読み取りおよび書き込み特権が追加され、ディレクトリのみに実行特権が追加されます。 (通常のファイルでは、最初のステップから実行ビットがオンになっています。)
find
をxargs
とともに使用することもできます。
find . -type f -print0 | xargs -0 chmod 666
find . -type d -print0 | xargs -0 chmod 777
どこ -type
はd irectoryまたはf ileを指定します。