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/b
等等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);对于其他外壳也是如此。