2013-06-28 148 views
2

你會如何以遞歸方式改變文件或目錄的權限,以便將組權限複製到世界權限,而無需其他更改?例如,從這個目錄列表中去:如何將世界權限設置爲與組權限相同?

drwxr-x--- 2 septi septi 4096 Jun 29 01:14 example.d 
-rw-r----- 1 septi septi 0 Jun 29 01:14 example.r 
-rwxr-x--- 1 septi septi 0 Jun 29 01:14 example.x 

...到:

drwxr-xr-x 2 septi septi 4096 Jun 29 01:14 example.d 
-rw-r--r-- 1 septi septi 0 Jun 29 01:14 example.r 
-rwxr-xr-x 1 septi septi 0 Jun 29 01:14 example.x 

回答

4

chmod(1) man page(提取相關部分):

-R更改模式的文件層次結構,而不僅僅是文件本身。

和:

由以下語法描述的符號模式:

who ::= a | u | g | o 
op  ::= + | - | = 
perm ::= r | s | t | w | x | X | u | g | o 

who符號 「u」, 「g」 和「 o「分別指定模式位的用戶,組和 的其他部分。該who符號a是 相當於ugo

perm符號表示如下的模式位的部分:在文件的原始模式

g組權限位。

所以你:

chmod -R o=g * 

例子:

$ ls -l 
total 0 
drwxr-x--- 2 carl staff 68 Jun 28 10:25 example.d 
-rw-r----- 1 carl staff 0 Jun 28 10:25 example.r 
-rwxr-x--- 1 carl staff 0 Jun 28 10:25 example.x 
$ chmod -R o=g * 
$ ls -l 
total 0 
drwxr-xr-x 2 carl staff 68 Jun 28 10:25 example.d 
-rw-r--r-- 1 carl staff 0 Jun 28 10:25 example.r 
-rwxr-xr-x 1 carl staff 0 Jun 28 10:25 example.x 
+3

注意'*'排除的文件和目錄的名字開始與'.'。根據您的要求,您可能更喜歡'chmod -R o = g .' –