通常我们通过ls 命令显示文件信息,查看目录信息时,再加上参数 -d 。这没有错,看总觉得不方便,尤其是不能显示文件修改时间,访问时间什么的,时间一列显示有时并不方便阅读。这种情况下,你需要的是stat命令,尤其适合查阅单个文件信息。
尤其是,在编写shell脚本时,stat绝对比从ls里面截取方便得多,而且更高的自由度!
stat命令简单示例
列表出文件的一系列摘要信息:
[root@localhost ~]# stat install.log File: "install.log" Size: 7730 Blocks: 16 IO Block: 4096 普通文件 Device: fd00h/64768d Inode: 1048578 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2015-10-20 10:21:05.473712000 +0800 Modify: 2015-10-20 10:23:50.061712001 +0800 Change: 2015-10-20 10:23:56.028712002 +0800 [root@localhost ~]#
很自然,它不包含任何文件内容,事实上该命令读不出文件内容,它也不会去读。
查看指定目录的stat
[root@localhost ~]# stat . File: "." Size: 4096 Blocks: 8 IO Block: 4096 目录 Device: fd00h/64768d Inode: 1048577 Links: 5 Access: (0550/dr-xr-x---) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2015-10-27 13:35:30.473108443 +0800 Modify: 2015-10-21 18:54:30.420109149 +0800 Change: 2015-10-21 18:54:30.420109149 +0800 [root@localhost ~]#
玩点高级一点的
上次访问时间:
[root@localhost ~]# stat -c %x install.log 2015-10-20 10:21:05.473712000 +0800
文件大小
[root@localhost ~]# stat -c %s install.log 7730
同时并格式化输出多个参数
$ stat --printf="%n %X %s" plan.jpg plan.jpg 1445912536 197196
更多使用方法,参考联机帮助或手册
联机帮助:
[root@localhost ~]# stat --help
用法:stat [选项]... 文件...
Display file or file system status.
-L, --dereference follow links
-Z, --context print the SELinux security context
-f, --file-system display file system status instead of file status
-c --format=格式 使用指定输出格式代替默认值,每用一次指定格式换一新行
--printf=格式 类似 --format,但是会解释反斜杠转义符,不使用换行作
输出结尾。如果您仍希望使用换行,可以在格式中
加入"\n"
-t, --terse 使用简洁格式输出
--help 显示此帮助信息并退出
--version 显示版本信息并退出
有效的文件格式序列(不使用 --file-system):
%a 八进制权限
%A 用可读性较好的方式输出权限
%b 计算已分配块数(参见%B)
%B 以字节为单位输出%b 所报告的每个块的大小
%C SELinux 安全环境字符串
%d 十进制设备编号
%D 十六进制设备编号
%f 十六进制原始模式
%F 文件类型
%g 文件的属组ID
%G 文件的属组组名
%h 硬链接数量
%i Inode 编号
%n 文件名
%N 如果对象是一个符号链接,显示引用到的其它文件名
%o I/O 块大小
%s 总计大小,以字节为单位
%t 十六进制主设备类型
%T 十六进制子设备类型
%u 文件的属主ID
%U 文件的属主用户名
%x 上次访问时间
%X 从UNIX 元年起计的上次访问时间
%y 上次修改时间
%Y 从UNIX 元年起计的上次修改时间
%z 上次更改时间
%Z 从UNIX 元年起计的上次更改时间
有效的文件系统格式序列:
%a 非超级用户可用的剩余块数
%b 文件系统的总数据块数
%c 文件系统中文件节点总数
%d 文件系统中空闲文件节点数
%f 文件系统中空闲块数
%C SELinux 安全环境字符串
%i 十六进制文件系统ID
%I 允许的文件名最大长度
%n 文件名
%s 块大小(用于快速传输)
%S 基本块大小(用于块计数)
%t 十六进制类型描述
%T 可读性较好的类型描述
注意:您的shell 内含自己的stat 程序版本,它会覆盖这里所提及的相应
版本。请查阅您的shell 文档获知它所支持的选项。
请向bug-coreutils@gnu.org 报告stat 的错误
GNU coreutils 项目主页:<http://www.gnu.org/software/coreutils/>
GNU 软件一般性帮助:<http://www.gnu.org/gethelp/>
请向<http://translationproject.org/team/zh_CN.html> 报告stat 的翻译错误
要获取完整文档,请运行:info coreutils 'stat invocation'