zoukankan      html  css  js  c++  java
  • (转)Linux系统stat指令用法

    <Linux系统stat指令用法>

     原文:https://www.cnblogs.com/linux-super-meng/p/3812695.html

    stat指令:文件/文件系统的详细信息显示(查看文件属性)。

    stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下:

    -f  不显示文件本身的信息,显示文件所在文件系统的信息

    -L  显示符号链接

    -t  简洁模式,只显示摘要信息

      事实上,stat命令显示的是文件的I节点信息。Linux文件系统以块为单位存储信息,为了找到某一个文件所在存储空间的位置,用I节点对每个文件进行索引。

      

       所谓的I节点,是文件系统管理的一个数据结构,是一个64字节长的表,包含了描述文件所必要的全部信息,其中包含了文件的大小,类型,存取权限,文件的所有者==

    查询rc.d文件的信息

    [root@redhat rc.d]# stat rc0.d/  //可以清楚的分析文件或目录的信息
      File: `rc0.d/'
      Size: 4096       Blocks: 8          IO Block: 4096   directory
    Device: fd00h/64768d Inode: 1309217     Links: 2
    Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2014-06-26 21:02:26.776082938 +0800
    Modify: 2014-06-12 15:16:57.848087079 +0800
    Change: 2014-06-12 15:16:57.848087079 +0800

    [root@redhat rc0.d]# du -sh   //这个目录下的所有文件共4K和上面大小差不多
    4.0K .

    查询ec.d文件所在文件系统的信息:

    [root@redhat rc.d]# stat -f rc0.d/  //这个显示的跟当前系统的文件系统信息一样,因为rc.0就在当前系统的文件系统
      File: "rc0.d/"
        ID: 303116b72802c784 Namelen: 255     Type: ext2/ext3
    Block size: 4096       Fundamental block size: 4096
    Blocks: Total: 7558388    Free: 5545748    Available: 5161800
    Inodes: Total: 1921360    Free: 1850717

    也可以查看硬盘的信息

    [root@redhat rc.d]# stat /dev/sda
      File: `/dev/sda'
      Size: 0          Blocks: 0          IO Block: 4096   block special file
    Device: 5h/5d Inode: 6308        Links: 1     Device type: 8,0
    Access: (0660/brw-rw----)  Uid: (    0/    root)   Gid: (    6/    disk)
    Access: 2014-06-27 20:57:07.213940088 +0800
    Modify: 2014-06-27 20:57:05.037938949 +0800
    Change: 2014-06-27 20:57:05.037938949 +0800

    sda硬盘文件系统的信息

    [root@redhat rc.d]# stat -f /dev/sda
      File: "/dev/sda"
        ID: 0        Namelen: 255     Type: tmpfs
    Block size: 4096       Fundamental block size: 4096
    Blocks: Total: 61793      Free: 61734      Available: 61734
    Inodes: Total: 61793      Free: 61080

     ----------------------------------------------------------------------------------------

    取得/etiantian文件的权限对应的数字(考试题答案系列)

    原文:http://blog.51cto.com/oldboy/791638

    说明:本文为老男孩linux培训某节课前考试试题及答案分享博文内容的一部分,也是独立成题的,你可以点下面地址查看全部的内容信息。
    http://oldboy.blog.51cto.com/2561410/791245
    答题的思维比做题本身更重要,就是老男孩如何想到的解决问题的思路。

    1.如何取得/etiantian文件的权限对应的数字内容,如-rw-r--r-- 644,要求使用命令取得644这样的数字。

    解答:


    实践过程:

    [root@oldboy ~]# touch /ett #==>创建测试文件/ett

    [root@oldboy ~]# stat /ett #==>通过stat命令可以看到文件的数字权限

      File: `/ett'

      Size: 0               Blocks: 0          IO Block: 4096   regular empty file

    Device: 803h/2051d      Inode: 98211       Links: 1

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

    Access: 2012-02-20 08:04:24.000000000 +0800

    Modify: 2012-02-20 08:04:24.000000000 +0800

    Change: 2012-02-20 08:04:24.000000000 +0800

    那么我们如何获得这一文件的数字权限呢?

    法一过程:(stat、sed、cut)

    [root@oldboy ~]# stat /ett|sed -n '4p'#==>首先通过管道把stat结果传给sed处理取出需要的行。

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

    [root@oldboy ~]# stat /ett|sed -n '4p'|cut -d "/" -f1 #==>对上面的结果以/线为分割符,然后取第1个字段。这里以斜线分割不是唯一的方法,大家注意下。

    Access: (0644

    [root@oldboy ~]# stat /ett|sed -n '4p'|cut -d "/" -f1|cut -d "(" -f2 #==>这就是法一答案

    #==>对上面的结果以(号为分割符,然后取第2个字段,就会得出我们需要的结果。

    0644

    特别说明:

    1)上题中的sed -n '4p'是取结果的第二行的意思,也可以用笨办法head -4|tail -1替代。例:

    [root@oldboy ~]# stat /ett|head -4|tail -1|cut -d "/" -f1|cut -d "(" -f2 #==>法二答案

    0644

    2)上题中的cut -d "/" -f1|cut -d "(" -f2部分,也可以用awk,sed等命令替代。如例:

    [root@oldboy ~]# stat /ett|head -4|tail -1|awk -F "/" '{print $1}'|awk -F "(" '{print $2}'

    0644 #==>法三答案,awk法如果大家有不懂的,也不用纠结,本文后面问题里会细讲。

    提示::此题考察了大家对stat ,cut,awk,head,tail,sed等命令组合用法,有对这些命令还不熟悉的同学,可以分步分批总结下。

    注意:敲字符时成对出现的’’,{}内容,最好连续敲完,以免后续落下。

    法二过程:(stat)

    当然还有更简单的方法:

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

    644

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

    特别说明:

    有关stat -c的用法可以通过stat --help和man stat,info 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 /ett

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

     

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

    644

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

    -rw-r--r--

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

    512

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

    0

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

    98211

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

    /ett

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

    4096

  • 相关阅读:
    跨域资源共享 CORS 详解以及IIS中的配置方法
    c#创建文件夹时无法访问路径,路径拒绝访问
    C#接口在派生类和外部类中的调用
    .NET/C#识别用户访问设备
    另一个SqlParameterCollection中已包含SqlParameter
    Java中throw和throws的区别
    MySQL与Oracle的语法区别详细对比
    hibernte中用criteria实现not in功能的方法
    使用Hibernate SQLQuery执行原生SQL
    hibernate查询数据表char类型字段只返回一个字符
  • 原文地址:https://www.cnblogs.com/liujiacai/p/8098235.html
Copyright © 2011-2022 走看看