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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了老男孩linux之取得文件的权限对应的数字练习题相关的知识,希望对你有一定的参考价值。

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


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

  1. 创建文件shiyan

    [[email protected] ~]# touch shiyan

    [[email protected] ~]# ll

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

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

    [[email protected] ~]# stat shiyan

    技术分享

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

  3. 获取644权限的过程

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

    [[email protected] ~]# stat shiyan|head -4|tail -1

    技术分享

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

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

    Access: (0644

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

    0644

    方法二:使用stat、sed、awk

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

    [[email protected] ~]# stat shiyan|sed -n ‘4p‘

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

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

    0644

    方法三:使用stat、sed、awk

    [[email protected] ~]# stat shiyan|sed -n ‘4p‘

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

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

    0644


    方法四:使用stat、cut、sed


    [[email protected] ~]# 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

    [[email protected] ~]# stat shiyan|cut -d ":" -f2|sed -n ‘4p‘

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

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

     (0644

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

    0644

    方法五:使用stat、sed、awk

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

    0644

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

    当然还有更简单的方法:

    [[email protected] ~]# stat -c %a shiyan

    644

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

    特别说明:

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

     

    [[email protected] ~]# 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

    ...省略部分...

    本题的拓展部分

    [[email protected] ~]# ls -li shiayn

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

     

    [[email protected] ~]# stat -c %a shiyan 

    644

    [[email protected] ~]# stat -c %A shiyan #==>获取字符权限

    -rw-r--r--

    [[email protected] ~]# stat -c %B shiyan

    512

    [[email protected] ~]# stat -c %b shiyan

    0

    [[email protected] ~]# stat -c %i shiyan #==>inode信息

    98211

    [[email protected] ~]# stat -c %n shiyan

    /ett

    [[email protected] ~]# stat -c %o shiyan #==>block size

    4096


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

以上是关于老男孩linux之取得文件的权限对应的数字练习题的主要内容,如果未能解决你的问题,请参考以下文章

(转)深入浅出linux系统umask值及其对应的文件权限讲解

老男孩Linux学习 --- 之思想篇

老男孩Linux Crond定时任务练习题

老男孩教育每日一题-2017年5月2日-Linux系统中,不小心把chmod命令的权限弄没了,怎么解决?

老男孩教育每日一题-2017年5月8日-请根据以下数字信息,确认相应的端口号,端口号对应的服务名称

linux学习日记之老男孩