コマンド プロンプトchmod
から使用して、すべてのファイルを 644 に、すべてのフォルダを 755 に変更するにはどうすればよいですか? linux
(ターミナル)
8 に答える
最も簡単な方法は次のとおりです。
chmod -R u+rwX,go+rX,go-w /path/to/dir
これは基本的に次のことを意味します。
次のように指定して、ch
ファイルをmod
再帰-R
的に怒らせます。
u
ser:r
ead、rite、w
ecuteX
パーミッション、g
roup およびそのユーザーo
: read およびecute パーミッションは許可しますが、rite パーミッションは許可しません。r
X
-w
X
はディレクトリを実行可能にしますが、すでに検索可能/実行可能でない限り、ファイルにはしないことに注意してください。
+X
- ディレクトリまたはファイルがすでに検索可能/実行可能になっている場合は、誰でも検索可能/実行可能にします。
詳しくはご確認man chmod
ください。
私が思いつくことができる最短のものは次のとおりです。
chmod -R a=r,u+w,a+X /foo
これは GNU/Linux で動作し、一般的に Posix を信じています ( http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.htmlを読んだ結果から)。
これが行うことは次のとおりです。
- ファイル/ディレクトリを r__r__r__ に設定 (0444)
- 所有者に w を追加して、rw_r__r__ を取得します (0644)
- ディレクトリの場合はすべて実行するように設定します (ディレクトリの場合は 0755、ファイルの場合は 0644)。
重要なことに、ステップ 1 のアクセス許可はすべての実行ビットをクリアするため、ステップ 3 はディレクトリの実行ビットのみを追加します (決してファイルではありません)。さらに、3 つのステップはすべて、ディレクトリが再帰される前に行われます (したがって、これは次の例と同等ではありません)。
chmod -R a=r /foo
chmod -R u+w /foo
chmod -R a+X /foo
a=r はディレクトリから x を削除するため、chmod はディレクトリに再帰できません。)
私が最も覚えやすいのは、次の 2 つの操作です。
chmod -R 644 dirName
chmod -R +X dirName
+X はディレクトリにのみ影響します。
これは私のために働いた:
find /A -type d -exec chmod 0755 {} \;
find /A -type f -exec chmod 0644 {} \;
以下を使用して、両方を 1 つのパスで実行します。
find -type f ... -o -type d ...
のように、タイプ f またはタイプ d を見つけ、最初の ... をファイルに対して、2 番目の ... をディレクトリに対して実行します。具体的には:
find -type f -exec chmod --changes 644 {} + -o -type d -exec chmod --changes 755 {} +
--changes
静かに動作させたい場合は、オフのままにしてください。