将 ls -ld 转换为 chmod/chown 命令

将 ls -ld 转换为 chmod/chown 命令

X 主目录权限:drwxr-xr-x
Y 主目录权限:drwxr-x--x

所以我的问题是,我如何将 drwxr-x--x 转换为 chmod/chown 命令,以便我可以将 Y 在其主目录中拥有的相同权限放在 X 的主目录中?

答案1

您可以使用chmod--reference选项。来自man chmod

   --reference=RFILE
          use RFILE's mode instead of MODE values

例如:

$ l -l
total 8.0K
drwx------ 2 terdon terdon 4.0K Sep 11 20:40 bar
drwxr-xr-x 2 terdon terdon 4.0K Sep 11 20:40 foo
$ chmod --reference foo bar
$ ls -l 
total 8.0K
drwxr-xr-x 2 terdon terdon 4.0K Sep 11 20:40 bar
drwxr-xr-x 2 terdon terdon 4.0K Sep 11 20:40 foo

答案2

天无绝人之路 :)

$ ll  | tr 'rwx' 421 | 
       awk '
       {
        split($0,a,""); 
        printf "%d%d%d\n", a[2]+a[3]+a[4], a[5]+a[6]+a[7], a[8]+a[9]+a[10] 
       }' 
020
644
644
755

$ ll
total 2K
-rw-r--r--  1 1K 2013-09-13 03:44 alphabet
-rw-r--r--  1 1K 2013-09-13 03:37 input
drwxr-xr-x+ 1 0K 2013-09-13 04:02 moo

相关内容