我想更改文件夹中的所有文件,其权限与所有者对其他人和组具有相同的权限。
rock@rock-DL-H61MXP:~/rock$ ls -l
total 92
-rwxrwxr-x 1 rock rock 8702 Sep 24 16:46 a.out
-rw-rw-r-- 1 rock rock 2957 Sep 16 19:50 cprob1.c
-rw-rw-r-- 1 rock rock 2957 Sep 16 19:48 cprob1.c~
-rw-rw-r-- 1 rock rock 5838 Sep 19 15:11 cprob.c
-rw-rw-r-- 1 rock rock 5814 Sep 19 15:08 cprob.c~
-rw-rw-r-- 1 rock rock 5406 Sep 19 16:01 cproblem1.c
-rw-rw-r-- 1 rock rock 2232 Sep 18 18:03 file1.txt
-rw-rw-r-- 1 rock rock 1795 Sep 18 18:32 file.txt
-rw-rw-r-- 1 rock rock 1108 Sep 11 17:48 frama_c_journal.ml
-rw-rw-r-- 1 rock rock 148 Sep 19 16:13 name.txt
-rw-rw-r-- 1 rock rock 151 Sep 19 15:34 name.txt~
drwxrwxr-x 5 rock rock 4096 Nov 18 12:17 project
-rw-rw-r-- 1 rock rock 123 Sep 12 10:47 quine.c
-rw-rw-r-- 1 rock rock 947 Sep 11 17:57 r.c
-rw-rw-r-- 1 rock rock 379 Sep 17 14:17 signext.c
-rw-rw-r-- 1 rock rock 129 Sep 17 13:39 test.c
-rw-rw-r-- 1 rock rock 476 Sep 24 16:46 thread.c
-rw-rw-r-- 1 rock rock 475 Sep 24 17:07 threadprob1.c
答案 0 :(得分:2)
这是我在linux上尝试的命令行:
$ ls -l | grep -v "^total" |\
> while read line; do
> file_name=`echo $line | awk '{print $9}'`
> owner_perm=`echo $line | cut -c '2-4'`
> chmod g+$owner_perm $file_name ; chmod o+$owner_perm $file_name
> done
注意:您可以使用ugo
代表权限组 - 表示u
ser,g
roup和o
thers。在上面的代码中,我刚刚从所有者字段&中提取了该文件的权限。分配给组&其他