1.命令功能
stat命令主要用于显示文件或文件系统的详细信息。
2.语法格式
stat [option] file
3.参数选项
- -L:显示符号链接所指向文件的信息
-f:显示文件所在文件系统的信息
-t:以简洁方式输出信息
- -c:以特定格式输出文件的某些信息
以上两例选择的参数分别为“%A”(可读格式表示的访问权限)、“%i”(Inode 号),下面全部是可用的选项:
%a 八进制表示的访问权限
%A 可读格式表示的访问权限
%b 分配的块数(参见 %B)
%B %b 参数显示的每个块的字节数
%d 十进制表示的设备号
%D 十六进制表示的设备号
%f 十六进制表示的 Raw 模式
%F 文件类型
%g 属主的组 ID
%G 属主的组名
%h 硬连接数
%i Inode 号
%n 文件名
%N 如果是符号链接,显示器所链接的文件名
%o I/O 块大小
%s 全部占用的字节大小
%t 十六进制的主设备号
%T 十六进制的副设备号
%u 属主的用户 ID
%U 属主的用户名
%x 最后访问时间
%X 最后访问时间,自 Epoch 开始的秒数
%y 最后修改时间
%Y 最后修改时间,自 Epoch 开始的秒数
%z 最后改变时间
%Z 最后改变时间,自 Epoch 开始的秒数
针对文件系统还有如下格式选项:
%a 普通用户可用的块数
%b 文件系统的全部数据块数
%c 文件系统的全部文件节点数
%d 文件系统的可用文件节点数
%f 文件系统的可用节点数
%C SELinux 的安全上下文
%i 十六进制表示的文件系统 ID
%l 文件名的最大长度
%n 文件系统的文件名
%s 块大小(用于更快的传输)
%S 基本块大小(用于块计数)
%t 十六进制表示的文件系统类型
%T 可读格式表示的文件系统类型
4.其它
- stat命令从文件的索引节点获取信息。
- 文件的三个时间:
Access time(atime):表示我们最后一次访问(仅仅是访问,没有改动)文件的时间。读一次这个文件的内容,这个时间就会更新,比如对这个文件运用 grep、sed、more、cat 、less、tail、head等命令,ls、stat命令都不会修改文件的访问时间。
Modify time(mtime):表示我们最后一次修改文件的时间。比如:vim后保存文件。ls -l列出的时间就是这个时间。
Change time(ctime):表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等等。如使用chmod,chown,mv,ln,就会改变文件的Change time。
根据上述解释,我们可以得出以下结论:
a).当我们仅仅只是读取文件时,access time 改变,而modify,change time 不会改变;
b).当修改文件时,access,modify,change time 都会跟着改变;
c).当修改文件属性时,change time 改变,而access,modify time 不变。
另个,除了可以通过stat来查看文件的mtime,ctime,atime等属性,也可以通过ls命令来查看,具体如下:
ls -lu filename 列出文件的 atime (最后存取时间)
ls -l filename 列出文件的 mtime (最后修改时间)
ls -lc filename 列出文件的 ctime (最后更改时间)
参考文献
[1] http://blog.csdn.net/qq_34328833/article/details/53869414
[2] http://blog.sina.com.cn/s/blog_605f5b4f01015k56.html
[3] http://www.jb51.net/LINUXjishu/344392.html
[4] http://www.linuxidc.com/Linux/2015-01/111705.htm
[5] http://blog.csdn.net/clozxy/article/details/7645284
[6] http://www.cnblogs.com/linux-super-meng/p/3812695.html
[7] http://lovelace.blog.51cto.com/1028430/1212625
以上为本文的全部参考文献,对原作者表示感谢。