状态 -- stat

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了状态 -- stat相关的知识,希望对你有一定的参考价值。

小Q:一蓑烟雨,一纸素笺,倚西风,但看是非,空回首归去来兮,终不似一如既往!

==========================================================

stat :用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。

技术分享

3个时间:

access time:表示我们最后一次访问(仅仅是访问,没有改动)文件的时间

modify time:表示我们最后一次修改文件的时间

change time:表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等等。

size: 427---------文件的大小.

Blocks: 8---------这个文件占用了8个块,块的单位是512个字节,因为文件系统的块为4096个字节,除以512个字节,就是8个Blocks.也就是一个文件最小也要占用8个block.

regular file--------文件的状态是不是正常的,此处为完整文件(个人理解是这个意思,请高手指点)

Device: fd00h/64768d----------是指存放文件的设备 详细的不太理解 请高手赐教

IO Block: 4096-------------IO Block表示文件系统块的大小,ext3默认为4096,可以调整为2048等,但ext3最大也即是4096,可以通过tune2fs -l /dev/sda1来确认.

Inode: 23724038------------Inode就是I节点,这里说明的是23724038并不是系统已经用了这么多个inode,比如现在新建文件2,inode为23724039,这时新建文件3,inode为23724040,此时你删了文件2,再建文件4,它的inode还是23724039.
最后要注意一个文件只有一个Inode,Inode指引我们找到文件的信息.

Links: 1-------------只有这个文件名用了这个Inode.如果有两个文件名用了这个Inode,这里的数字将是2,例如一个硬链接.
参数:

  
 -L, --dereference      follow links # 如果是链接文件,则获取原文件信息
   -Z, --context         print the security context information if availabl
                           # 打印SElinux安全上下文信息
   -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
                            # 自定义输出格式,结尾有换行
      --printf=FORMAT   like --format, but interpret backslash escapes,
                 and do not output a mandatory trailing newline.
                  If you want a newline, include \n in FORMAT.
                             # 自定义输出格式,结尾无换行符,需手动添加
   -t, --terse         print the information in terse form
                         # 以简洁的形式打印输出信息(在没有改变输出格式的情况下)
      --help          display this help and exit
                         # 打印帮助信息
      --version  output version information and exit
                        # 打印版本信息并退出


可选的文件信息输出格式
  %a   Access rights in octal 八进制格式的文件访问权限   
  %A   Access rights in human readable form 可读形式访问权限(ls -l情况下显示的样子)
  %b   Number of blocks allocated (see %B)  分配的块数(单位参照%B的数值)
  %B   The size in bytes of each block reported by %b  
          每个块的大小(这个值是指硬盘上存储单元块的大小,与格式化的block块大小不同)
  %d   Device number in decimal  设备号(10进制)
  %D   Device number in hex 设备号(十六进制)
  %f   Raw mode in hex raw模式(十六进制,可以百度一下raw的意思)
  %F   File type 文件类型
  %g   Group ID of owner 文件所有者的组ID
  %G   Group name of owner 文件所有者的组名
  %h   Number of hard links    硬链接的数量(文件本身算1个)
  %i   Inode number  inode号
  %n   File name  文件名
  %N   Quoted file name with dereference if symbolic link 
         取消软连接的文件名引用,变成普通字符串
  %o   I/O block size   系统格式化block的大小
  %s   Total size, in bytes   文件大小(单位byte)
  %t   Major device type in hex 主要设备类型(十六进制)
  %T   Minor device type in hex 次要设备类型(十六进制)
  %u   User ID of owner  所有者的用户ID
  %U   User name of owner 所有者的用户名
  %x   Time of last access 最后访问时间
  %X   Time of last access as seconds since Epoch  最后一次访问时间(大纪元秒)
  %y   Time of last modification 最后修改时间(内容改变) 
  %Y   Time of last modification as seconds since Epoch 最后修改时间(内容改变)
  %z   Time of last change 最后改变时间(文件属性,权限所有者等,格式大纪元秒)
  %Z   Time of last change as seconds since Epoch 
         最后改变时间(文件属性,权限所有者等,格式大纪元秒)
stat -c "%a %A %b %B %d %D %f %F %g %G %h %i %n %N %o %s %t %T %u %U %x %X %y %Y %z %Z" file
可选的分区信息输出格式
  %a   Free blocks available to non-superuser 普通用户可用的block数量      
  %b   Total data blocks in file system 分区的总数据块数量       
  %c   Total file nodes in file system 文件系统的inode总数       
  %d   Free file nodes in file system 空闲inode数量       
  %f   Free blocks in file system 可用的block数量      
  %C   Security context in SELinux selinux 安全上下文       
  %i   File System ID in hex  分区ID(十六进制)  
  %l   Maximum length of filenames 分区文件名最大长度       
  %n   File name  文件名      
  %s   Block size (for faster transfers) 块大小(都是系统block的大小)
  %S   Fundamental block size (for block counts) 基本块大小(都是系统block的大小)
  %t   Type in hex 文件系统类型(格式化的类型,十六进制)
  %T   Type in human readable form 文件系统类型(格式化的类型,可读形式)
stat -f -c "%a %b %c %d %f %C %i %l %n %s %S %t %T" file

[[email protected]_CENTER /opt/tengxuntao]# stat -f qianyi_db.sh  
 File: "qianyi_db.sh"   
  ID: 0        Namelen: 255     Type: ext2/ext3
  Block size: 4096   Fundamental block size: 4096
  Blocks: Total: 25393143   Free: 15097826   Available: 13787123
  Inodes: Total: 26214400   Free: 26069859
  You have new mail in /var/spool/mail/root
  [[email protected]_CENTER /opt/tengxuntao]# stat -t qianyi_db.sh 
  qianyi_db.sh 977 8 81ed 0 0 802 19103776 1 0 0 1456901487 1456900164 1456900164 4096
  [[email protected]_CENTER /opt/tengxuntao]# stat qianyi_db.sh   
  File: “qianyi_db.sh”  Size: 977            
   Blocks: 8          IO Block: 4096   一般文件Device: 802h/2050d      
   Inode: 19103776    Links: 1
   Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
   Access: 2016-03-02 14:51:27.000000000 +0800
   Modify: 2016-03-02 14:29:24.000000000 +0800
   Change: 2016-03-02 14:29:24.000000000 +0800


以上是关于状态 -- stat的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段13——Vue的状态大管家

VSCode自定义代码片段13——Vue的状态大管家

NodeJs异步的执行过程

java BottomBarNavigation代码保留片段状态

stat命令的实现-mystat

stat命令的实现-mysate(必做)