码迷,mamicode.com
首页 > 系统相关 > 详细

老男孩linux之取得文件的权限对应的数字练习题

时间:2017-07-11 15:59:57      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:sed cut awk linux 老男孩linux之取得文件的权限对应的数字练习题

老男孩linux之取得文件的权限对应的数字练习题


问题:如何取得shiayn文件的权限对应的数字内容,如-rw-r--r-- 644,要求使用命令取得644这样的数字。

  1. 创建文件shiyan

    [root@nginx ~]# touch shiyan

    [root@nginx ~]# ll

    -rw-r--r--  1 root root    0 Jul 11 05:48 shiyan

  2. 使用stat命令来查看文件644权限

    [root@nginx ~]# stat shiyan

    技术分享

    说明: stat - display file or file system status(显示文件或文件系统状态)

  3. 获取644权限的过程

    方法一:使用stat、head、tail、awk

    [root@nginx ~]# stat shiyan|head -4|tail -1

    技术分享

    说明:先将含有644的那行提取出来。

    [root@nginx ~]# stat shiyan|head -4|tail -1|awk -F "/" ‘{print $1}‘

    Access: (0644

    [root@nginx ~]# stat shiyan|head -4|tail -1|awk -F "/" ‘{print $1}‘|awk -F "(" ‘{print $2}‘

    0644

    方法二:使用stat、sed、awk

    先将含有644的那行提取出来

    [root@nginx ~]# stat shiyan|sed -n ‘4p‘

    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

    [root@nginx ~]# stat shiyan|sed -n ‘4p‘|awk -F "/" ‘{print $1}‘|awk -F "(" ‘{print $2}‘

    0644

    方法三:使用stat、sed、awk

    [root@nginx ~]# stat shiyan|sed -n ‘4p‘

    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

    [root@nginx ~]# stat shiyan|sed -n ‘4p‘|awk -F ":" ‘{print $2}‘|awk -F "/" ‘{print $1}‘|awk -F "(" ‘{print $2}‘

    0644


    方法四:使用stat、cut、sed


    [root@nginx ~]# stat shiyan|cut -d ":" -f2

     `shiyan‘

     0              Blocks

     802h/2050d     Inode

     (0644/-rw-r--r--)  Uid

     2017-07-11 05

     2017-07-11 05

     2017-07-11 05

    [root@nginx ~]# stat shiyan|cut -d ":" -f2|sed -n ‘4p‘

     (0644/-rw-r--r--)  Uid

    [root@nginx ~]# stat shiyan|cut -d ":" -f2|sed -n ‘4p‘|cut -d "/" -f1

     (0644

    [root@nginx ~]# stat shiyan|cut -d ":" -f2|sed -n ‘4p‘|cut -d "/" -f1|cut -d "(" -f2

    0644

    方法五:使用stat、sed、awk

    [root@nginx ~]# stat shiyan|sed -n ‘4p‘|awk -F "/" ‘{print $1}‘|awk -F "(" ‘{print $2} ‘

    0644

    方法六:老男孩老师给出的最简单的方法

    当然还有更简单的方法:

    [root@oldboy ~]# stat -c %a shiyan

    644

    注意:如何想到法二的思考过程,比答题更重要。当命令结果包含我们需要的内容的时候,我们要想到是否有具体的参数能够一步达到我们需要的结果。

    特别说明:

    有关stat -c的用法可以通过stat --helpman statinfo stat,这是所有命令的三大帮助杀手锏,必须要掌握了。

     

    [root@oldboy ~]# stat --help

    Usage: stat [OPTION] FILE... #==>这是语法格式

    Display file or file system status.

    ...省略部分...

      -f, --file-system     display file system status instead of file status

      -c  --format=FORMAT   use the specified FORMAT instead of the default;

                              output a newline after each use of FORMAT

    ...省略部分...

     

    #==>这是可用的参数,如-c

    The valid format sequences for files (without --file-system):

    #==>这里是对于文件适用的格式,既-c后接的格式。

      %a   Access rights in octal #==>8进制形式显示,即为本文的答案

      %A   Access rights in human readable form #==>拓展以人类可读的形式显示权限

      %b   Number of blocks allocated (see %B)

      %B   The size in bytes of each block reported by %b

      %d   Device number in decimal

      %D   Device number in hex

      %f   Raw mode in hex

      %F   File type

      %g   Group ID of owner

      %G   Group name of owner

      %h   Number of hard links

      %i   Inode number

      %n   File name

      %N   Quoted file name with dereference if symbolic link

      %o   I/O block size

      %s   Total size, in bytes

    ...省略部分...

    本题的拓展部分

    [root@oldboy ~]# ls -li shiayn

    98211 -rw-r--r-- 1 root root 0 Feb 20 08:04 /ett

     

    [root@oldboy ~]# stat -c %a shiyan 

    644

    [root@oldboy ~]# stat -c %A shiyan #==>获取字符权限

    -rw-r--r--

    [root@oldboy ~]# stat -c %B shiyan

    512

    [root@oldboy ~]# stat -c %b shiyan

    0

    [root@oldboy ~]# stat -c %i shiyan #==>inode信息

    98211

    [root@oldboy ~]# stat -c %n shiyan

    /ett

    [root@oldboy ~]# stat -c %o shiyan #==>block size

    4096


本文出自 “圣骑士控魔之手” 博客,请务必保留此出处http://wutengfei.blog.51cto.com/10942117/1946307

老男孩linux之取得文件的权限对应的数字练习题

标签:sed cut awk linux 老男孩linux之取得文件的权限对应的数字练习题

原文地址:http://wutengfei.blog.51cto.com/10942117/1946307

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!