方法1:将 ls 输出中的权限字符换成数字,然后分组求和即可。

# ll /etc/passwd | cut -c2-10 | tr "rwx-" "4210" | awk -F "" '{print $1+$2+$3""$4+$5+$6""$7+$8+$9}'

方法2:从 stat 命令输出中取出权限

# stat /etc/passwd | awk -F [0/] 'NR==4 {print $2}'   <-- 用 awk
# stat /etc/hosts | sed -nr 's#^Access: \(0(.*)/-.*$#\1#gp' <-- 用 sed

方法3:直接使用命令选项
如果一个命令的输出中有我们想要的结果,很可能就有相应的参数直接看到结果:

# stat -c %a /etc/passwd
-- By 许望(RHCA、OCM、VCP)
最后修改:2020 年 01 月 02 日 08 : 32 PM
如果觉得我的文章对你有用,请随意赞赏