ls命令可能是使用Unix的人最先学习的命令之一,但是它只显示了stat命令提供的一小部分信息。
STAT命令是直接从文件的inode信息。正如你可能知道,其实有三套日期和时间被存储为您的系统上的每个文件。These include the date the file was last modified (i.e., the date and time that you see when you use the ls -l command), the time the file was last changed (which includes renaming the file), and the time that file was last accessed.
查看一个文件的长列表,您将看到如下内容:
$ ls -l trythis -rwx- 1 shs unixdweebs 109 2013年11月11日尝试这个
使用stat命令,你会看到这一切:
$统计trythis文件:`trythis'大小:109块:8 IO模块:262144常规文件设备:18H / 24D的Inode:12731691个链接:1次访问:(0700 / -rwx ------)发表于:(263 /SHS)GID:(100 / unixdweebs)访问:2014年9月9日19:27:58.000000000 -0400修改:2013年11月11日08:40:10.000000000 -0500变化:2013年11月11日08:40:10.000000000 -0500
该文件的变化和修改日期/时间是在这种情况下是相同的,而访问时间是相当新的。我们还可以看到,该文件是用8块,我们看到的权限在每个两种格式 - 八进制(0700)格式和RWX格式。inode编号,在输出的第三行所示,是12731681.有没有额外的硬链接(链接:1)。并且该文件是一个普通文件。
重命名该文件,您将看到更改时间将被更新。这是ctime信息,最初用于保存文件的创建日期和时间,但该字段在一段时间后被转换为更改时间字段。
$ MV trythis trythat $统计trythat文件:`trythat”大小:109块:8 IO模块:262144常规文件设备:18H / 24D的Inode:12731691个链接:1次访问:(0700 / -rwx ------)的Uid:(263 /股)GID:(100 / unixdweebs)访问:2014年9月9日19:27:58.000000000 -0400修改:二○一三年十一月一十一日08:40:10.000000000 -0500变化:2014年9月21日12:46:22.000000000 -0400
更改文件的权限也将登记在的ctime领域。
您还可以使用wilcards与stat命令,并列出你的文件统计一组:
stat myfile美元*文件:“myfile”大小:20块:8 IO块:262144常规文件设备:18 h / 24 d Inode: 12731803链接:1访问:0640 / -rw-r——Uid:(263 /合成Gid: (100 / unixdweebs)访问:-0400 03:00:36.000000000 2014-08-23修改:-0400 12:02:12.000000000 2014-08-22变化:-0400 12:02:12.000000000 2014-08-22文件:“myfile2”大小:20块:8 IO块:262144常规文件设备:18 h / 24 d Inode: 12731806链接:1访问:0640 / -rw-r——Uid:(263 /合成Gid: (100 / unixdweebs)访问:2014-08-23 03:00:36.000000000 -0400修改:2014-08-22 -0400年12:03:30.000000000变化:-0400 12:03:30.000000000 2014-08-22文件:“myfile3”大小:40块:8 IO块:262144常规文件设备:18 h / 24 d Inode: 12730533链接:1访问:0640 / -rw-r——Uid:(263 /合成Gid: (100 / unixdweebs)访问:-0400 03:00:36.000000000 2014-08-23修改:2014-08-22 12:03:59.000000000 -0400变化:2014-08-22 12:03:59.000000000 -0400
如果愿意,我们可以通过其他命令来获得这些信息。
添加“U”选项的长列表,你会看到这样的事情。请注意,这给我们的最后访问时间,同时增加“C”为我们展示了变化时(在这个例子中,时候,我们重命名的文件)。
$ ls -lu trythat -rwx- 1 shs unixdweebs 109 9月9日19:27 trythat -rwx- 1 shs unixdweebs 109 9月21日12:46 trythat
stat命令也可以针对目录工作。在本例中,我们看到有许多链接。
$统计BIN文件:'本大小:12288块:24 IO模块:262144目录设备:18H / 24D的Inode:15089714个链接:9次访问:(0700 / drwx ------)发表于:(263 /股)GID:(100 / unixdweebs)访问:2014年9月21日03:00:45.000000000 -0400修改:2014年9月15日17:54:41.000000000 -0400变化:2014年9月15日17:54:41.000000000 -0400
这里,我们将查看一个文件系统。
$ stat -f /dev/cciss/c0d0p2文件:"/dev/cciss/c0d0p2" ID: 0 Namelen: 255类型:tmpfs块大小:4096基本块大小:4096块总数:259366空闲:259337可用:259337索引节点总数:223834空闲:223531
注意Namelen(名称长度)字段。祝你好运,如果你有你的心脏集上有超过255个字符的文件名!
stat命令还可以一次在字段中显示它的一些信息,在下面的示例中,我们只需要查看文件类型和硬链接的数量。
$ STAT --format =%F trythat常规文件$ STAT --format =%trythat 1小时
在下面的示例中,我们将查看权限(两种可用格式中的一种),然后查看文件的SELinux安全上下文。最后,我们看一下自纪元以来以秒表示的文件访问时间。
$ STAT --format =%A 700 trythat $ STAT --format =%A trythat -rwx ------ $ STAT --format =%C trythat(空)$ STAT --format =%X仓1411282845
可用的选项包括所有的以下内容:
%访问权限的八进制%访问权限以人类可读的形式% b的块分配(见% b) % b字节的每个块的大小由十进制% d % b % d设备号设备数量在十六进制% f原始模式在十六进制% f文件类型% g组ID的所有者% g组名称的所有者% h % n %我的硬链接数Inode号文件名称% n引用文件名称与废弃符号链接% % s o i / o块大小总大小,在十六进制字节% t主要设备类型% t小设备输入十六进制% u所有者的用户ID % u所有者的用户名% x最后访问时间% %(系统纪元以来最后访问时间为秒最后修改时间% y % z(系统纪元以来最后修改时间为秒时间的% z时间变化的变化时代以来的秒
而对于文件系统的有效格式序列包括以下:
%免费可用块non-superuser % b总数据块文件系统% c总文件节点文件系统% d自由文件节点文件系统% f自由块在文件系统% c安全上下文SELinux %我在十六进制文件系统ID % l最大长度的文件名文件名% n % s块大小(用于更快的转移)% s基本块大小(块计数)% t输入十六进制% t类型以人类可读的形式
有了所有这些可用信息,stat命令可能会帮助您以稍微不同的方式考虑您的文件。