linux stat命令详解

linux stat 命令的作用很强大,我们可以根据这个命令列出的信息,进一步了解文件,最基本的就是文件的时间变化。

例如:

[haha@test tmp]$ stat 123.log 

  File: "123.log"

  Size: 24              Blocks: 8          IO Block: 4096   普通文件

Device: 802h/2050d      Inode: 7077977     Links: 1

Access: (0755/-rwxr-xr-x)  Uid: (  501/   metao)   Gid: (  501/   metao)

Access: 2015-01-08 11:55:52.939370484 +0800

Modify: 2014-12-31 16:58:58.525116667 +0800

Change: 2015-01-08 11:54:50.765180227 +0800


Access:  文件被访问的时间。例如:more。但是cat 不会更改这个时间。

Modify:  文件内容改变的时间。例如:文件内容有改变,就会更改这个时间。

Change:  文件状态改变时间。;例如:chown,chmod会改变这个时间。



下面参考:

http://colinzhouyj.blog.51cto.com/2265679/1288580

stat 命令的具体参数详解如下:


stat

  -L, --dereference     follow links  如果是链接文件,则获取原文件信息
  -Z, --context         print the security context information if available
                               打印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



本文出自 “为梦想而努力!” 博客,请务必保留此出处http://815632410.blog.51cto.com/1544685/1600626

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。