如何查找文件所有者的权限,并使用脚本为组和其他人分配相同的权限

时间:2013-11-18 07:05:49

标签: linux shell unix

我想更改文件夹中的所有文件,其权限与所有者对其他人和组具有相同的权限。

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

1 个答案:

答案 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。在上面的代码中,我刚刚从所有者字段&中提取了该文件的权限。分配给组&其他