221

コマンド プロンプトchmodから使用して、すべてのファイルを 644 に、すべてのフォルダを 755 に変更するにはどうすればよいですか? linux(ターミナル)

4

8 に答える 8

121

最も簡単な方法は次のとおりです。

chmod -R u+rwX,go+rX,go-w /path/to/dir

これは基本的に次のことを意味します。

次のように指定して、chファイルをmod再帰-R的に怒らせます。

  • user: read、rite、wecuteXパーミッション、
  • group およびそのユーザーo: read およびecute パーミッションは許可しますが、rite パーミッションは許可しません。rX-w

Xはディレクトリを実行可能にしますが、すでに検索可能/実行可能でない限り、ファイルにはしないことに注意してください。

+X- ディレクトリまたはファイルがすでに検索可能/実行可能になっている場合は、誰でも検索可能/実行可能にします。

詳しくはご確認man chmodください。

参照:ファイル以外のすべてのディレクトリを (再帰的に) chmod する方法は? SUで

于 2015-05-22T21:53:45.343 に答える
60

私が思いつくことができる最短のものは次のとおりです。

chmod -R a=r,u+w,a+X /foo

これは GNU/Linux で動作し、一般的に Posix を信じています ( http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.htmlを読んだ結果から)。

これが行うことは次のとおりです。

  1. ファイル/ディレクトリを r__r__r__ に設定 (0444)
  2. 所有者に w を追加して、rw_r__r__ を取得します (0644)
  3. ディレクトリの場合はすべて実行するように設定します (ディレクトリの場合は 0755、ファイルの場合は 0644)。

重要なことに、ステップ 1 のアクセス許可はすべての実行ビットをクリアするため、ステップ 3 はディレクトリの実行ビットのみを追加します (決してファイルではありません)。さらに、3 つのステップはすべて、ディレクトリが再帰される前に行われます (したがって、これは次の例と同等ではありません)。

chmod -R a=r /foo
chmod -R u+w /foo
chmod -R a+X /foo

a=r はディレクトリから x を削除するため、chmod はディレクトリに再帰できません。)

于 2016-12-26T12:52:05.870 に答える
22

私が最も覚えやすいのは、次の 2 つの操作です。

chmod -R 644 dirName
chmod -R +X dirName

+X はディレクトリにのみ影響します。

于 2016-05-17T23:08:41.607 に答える
8

これは私のために働いた:

find /A -type d -exec chmod 0755 {} \;
find /A -type f -exec chmod 0644 {} \;
于 2015-07-07T16:24:23.560 に答える
6

以下を使用して、両方を 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静かに動作させたい場合は、オフのままにしてください。

于 2015-12-31T18:11:10.483 に答える