権限を再帰的に変更することと権限を再帰的に変更しないことの違い

権限を再帰的に変更することと権限を再帰的に変更しないことの違い

chmod 777 * コマンドと再帰的または一般的に権限を変更するchmod -R 777 * ことの違いは何ですか?

ベストアンサー1

次のディレクトリ構造があるとします。

$ ls -lR
.:
total 4
drwxr-xr-x 3 user users 4096 Aug  2 14:05 a

./a:
total 4
drwxr-xr-x 3 user users 4096 Aug  2 14:05 b

./a/b:
total 4
drwxr-xr-x 2 user users 4096 Aug  2 14:05 c

./a/b/c:
total 0

chmod 777 *現在のディレクトリにあるすべてのファイルの権限を0777に設定するだけです。ただし、サブディレクトリのファイルは影響を受けません。つまり、a/権限は0777に設定されますが、a/betcは設定されませんa/b/c

$ chmod 777 *
$ ls -lR
.:
total 4
drwxrwxrwx 3 user users 4096 Aug  2 14:05 a

./a:
total 4
drwxr-xr-x 3 user users 4096 Aug  2 14:05 b    <=== Note

./a/b:
total 4
drwxr-xr-x 2 user users 4096 Aug  2 14:05 c    <=== Note

./a/b/c:
total 0

ここで再帰が発生します。chmod -R 777 *現在のディレクトリのすべてのサブディレクトリにあるすべてのファイルとディレクトリが影響を受けます。

$ ls -lR
.:
total 4
drwxrwxrwx 3 user users 4096 Aug  2 14:05 a

./a:
total 4
drwxrwxrwx 3 user users 4096 Aug  2 14:05 b    <=== Note

./a/b:
total 4
drwxrwxrwx 2 user users 4096 Aug  2 14:05 c    <=== Note

./a/b/c:
total 0

注:bashを使用している場合、「すべてのファイル」の意味は値によって異なりますdotglob。 bash(1) も同様です。

おすすめ記事