Chmod

遞歸更改權限或不遞歸更改權限之間的區別

  • August 2, 2016

chmod 777 * 命令和chmod -R 777 * 遞歸或正常更改權限有什麼區別 ?

假設您有以下目錄結構:

$ 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/ba/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);對於其他貝殼也是如此。

引用自:https://unix.stackexchange.com/questions/299787