如何取得/etc/hosts文件的权限对应的数字内容,如-rw-r--r--为644,要求使用命令取得644这样的数字。
解答:
[root@yurenkang ~]# stat /etc/hosts
File: ‘/etc/hosts’
Size: 158 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 16816790 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-03-26 12:17:51.642011926 +0800
Modify: 2013-06-07 22:31:32.000000000 +0800
Change: 2019-03-04 11:15:25.537975418 +0800
Birth: -
1 awk先取行 再取列
[root@yurenkang ~]# stat /etc/hosts|awk 'NR==4'
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
[root@yurenkang ~]# stat /etc/hosts|awk -F "[0/]" 'NR==4{print $2}'
644
2 sed 先取行 再去掉开头 去掉结尾
[root@yurenkang ~]# stat /etc/hosts|sed -n 4p
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
[root@yurenkang ~]# stat /etc/hosts|sed -nr '4s#^.(0(.)/-.*$#\1#gp'
644
这里说一下发布出来和我写的有区别(0前面有个逃脱符\ 前面还有个*号可能是这个简书语法的问题
找准分割点 加参数 后项引用 用好撬棍 打回符号原形
3grep 能简单的就不要复杂
[root@yurenkang ~]# stat /etc/hosts|grep 644
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
[root@yurenkang ~]# stat /etc/hosts|grep -o '644'
644
4.有时候老师讲的其他命令自己可以扩展
[root@yurenkang ~]# stat -c%A /etc/hosts
-rw-r--r--
[root@yurenkang ~]# stat -c%a /etc/hosts
644
也许他就是这么简洁