Linux stat命令:显示文件或文件系统的详细信息

Linux stat命令:显示文件或文件系统的详细信息,第1张

概述在 Linux 中,文件有访问时间、数据修改时间、状态修改时间这三个时间,而没有创建时间。stat 是査看文件详细信息命令,而且可以看到文件的这三个时间,其基本信息如下。 命令名 在 linux 中,文件有访问时间、数据修改时间、状态修改时间这三个时间,而没有创建时间。stat 是査看文件详细信息的命令,而且可以看到文件的这三个时间,其基本信息如下。
命令名称:stat。英文原意:display file or file system status。所在路径:/usr/bin/stat。执行权限:所有用户。功能描述:显示文件或文件系统的详细信息。命令格式

[root@localhost ~]# stat [选项]文件名或目录名

选项:-f:査看文件所在的文件系统信息,而不是査看文件的信息。常见用法【例 1】査看文件的详细信息。

[root@localhost ~]# stat anaconda-ks.cfg
file: "anaconda-ks.cfg"
#文件名
Size: 1170  Blocks: 8 IO Block: 4096 普通文件
#文件大小   占用的block数 块大小 文件类型
Device: 803h/2051d Inode: 130834 links: 1
#i节点号 链接数
Access: (0600/-rw-------) UID: ( 0/ root) GID: ( 0/ root)
#权限 所有者 所属组
Access: 2016-05-06 23:31:41.396893415 +0800
#访问时间
Modify: 2016-05-06 23:31:41.396893415 +0800
#数据修改时间
Change: 2016-05-06 23:31:41.411006937 +0800
#状态修改时间


【例 2】 査看文件系统信息。
如果使用"-f"选项,就不再是査看指定文件的信息,而是査看这个文件所在文件系统的信息,例如:

[root@localhost ~]#stat -f anaconda-ks.cfg
file: "anaconda-ks.cfg"
ID: c05ad05e0e3b0580 namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 5045314 Free: 4356956 Available: 4100662 Inodes: Total: 1283632 Free: 1192731


【例 3】三种时间的含义。
査看系统当前时间,如下:

[root@localhost ~]# date
2016年05月07日星期六01:40:49 CST

再査看 bds 文件的三种时间,可以看到,和当前时间是有差别的,如下:

[root@localhost ~]# stat bols
file: "bols"
Size: 0 Blocks: 0   IO Block: 4096 普通空文件
Device: 803h/2051d Inode: 130829 links: 1
Access: (0644/-rw-r--r--) UID: ( 0/ root) GID: ( 0/ root)
Access: 2016-05-07 00:10:23.794319970 +0800
Modify: 2016-05-07 00:10:23.794319970 +0800
Change: 2016-05-07 00:10:23.794319970 +0800
#这些时间都是最后一次修改文件的时间,并不是当前时间

而如果用 cat 命令读取一下这个文件,就会发现文件的访问时间 (Access Time) 变成了 cat 命令的执行时间,如下:

[root@localhost ~]# cat bols
[root@localhost ~]# stat bols
file: "bols"
Size: 0 Blocks: 0   I0 Block: 4096 普通空文
Device: 803h/2051d Inode: 130829 links: 1
Access: (0644/-rw-r--r--) UID: ( 0/ root) GID:(0/ root)
Access: 2016-05-07 01:41:08.202924900 +0800
#只有访问时间变为了cat命令的执行时间,其他两个时间没有改
Modify: 2016-05-07 00:10:23.794319970 +0800
Change: 2016-05-07 00:10:23.794319970 +0800

而如果用 echo 命令向文件中写入点数据,那么文件的数据修改时间(Modify Time)就会发生改变。但是文件数据改变了,系统会认为文件的状态也会改变,所以状态修改时间(Change Time)也会随之改变,如下:

[root@localhost ~]# echo 9527> bols
[root@localhost ~]# stat bols
file: "bols"
Size: 6 Blocks: 8   I0 Block: 4096 普通文件
Device: 803h/2051d Inode: 130829 links: 1
Access: (0644/-rw-r--r--) UID: ( 0/ root) GID: ( 0/ root)
Access: 2016-05-07 01:41:08.202924900 +0800
#这个时间还是上次修改时间
Modify: 2016-05-07 01:42:42.459614017 +0800
Change: 2016-05-07 01:42:42.459614017 +0800 #而这两个时间变为了 echo 命令的执行时间

而如果只修改文件的状态(比如改变文件的所有者),而不修改文件的数据,则只会更改状态修改时间(ChangeTime),如下:

[root@localhost ~]# chown nobody bols
[root@localhost ~]# stat bols
file: "bols"
Size: 6 Blocks: 8   10 Block: 4096 普通文件
Device: 803h/2051d Inode: 130829 links: 1
Access: (0644/-rw-r-r-) UID: ( 502/ nobody) GID: ( 0/root)
Access: 2016-05-07 01:41:08.202924900 +0800
Modify: 2016-05-07 01:42:42.459614017 +0800
# 前两个时间还是之前修改的时间
Change: 2016-05-07 01:43:09.676860399 +0800
#而状态修改时间变为了chown命令的执行时间

而如果用 touch 命令再次触摸这个文件,则这个文件的三个时间 都会改变。touch 命令的作用就是这样的,大家记住即可。如下:

[root@localhost ~]# touch bols
[root@localhost ~]# stat bols
file: "bols"
Size: 6 Blocks: 8   10 Block: 4096 普通文件
Device: 803h/2051d Inode: 130829 links: 1
Access: (0644/-rw-r--r--) UID: ( 502/ nobody) GID: ( 0/root)
Access: 2016-05-07 01:54:14.466809236 +0800
Modify: 2016-05-07 01:54:14.466809236 +0800
Change: 2016-05-07 01:54:14.466809236 +0800
#三个时间都会变为touch命令的执行时间

总结

以上是内存溢出为你收集整理的Linux stat命令:显示文件或文件系统的详细信息全部内容,希望文章能够帮你解决Linux stat命令:显示文件或文件系统的详细信息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1032869.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存