文章目录
stat
命令介绍
先到帮助文档中了解命令的含义
NAME
stat – display file or file system status
stat(status)命令主要功能是
显示文件或文件系统的状态信息
,显示了文件大小,权限信息,硬链接,软连接,inode号,SELinux上下文,以及三个时间信息。还可通过这三个时间来查看文件有没有被修改过文件内容。
三个时间分别是:
- ATIME:文件最后访问时间
- MTIME:文件最后修改时间
- CTIME:文件最后改动时间
语法格式
stat的语法格式:stat 【参数】文件
SYNOPSIS
stat [OPTION]… FILE…
下面来看下命令的参数有哪些。
基本参数
命令的基本参数有以下信息,表格形式呈现
-L | 支持显示符号链接的文件 |
-f | 显示文件系统的信息 |
-t |
显示简洁的信息 |
–help | 显示帮助信息 |
-c <format> | 显示指定的样式 |
-c参数指定的样式有:
- %a :显示文件的八进制权限
- %A :显示以人类可读的权限形式(rwx)
- %b :显示已分配的块数(block)
- %B :显示每个扇区的大小
- %C :显示安全上下文信息
- %d :显示文件在磁盘中的十进制设备编号
- %D :显示文件在磁盘中的十六进制设备编号
- %f :显示文件十六进制原始模式
- %F :显示文件类型
- %g :显示用户的GID
- %G :显示用户的属组(组名称)
- %h : 显示文件的硬链接数量
- %i : 显示文件的inode值
- %m :显示文件所在的挂载点
- %n : 显示文件名
- %N :显示文件是否是链接文件,是则显示源文件
- %o :显示I/O的传输大小
- %s :显示文件的总大小,以字节bit为单位
- %t :显示以十六进制表示的主要设备类型,用于字符和块设备的文件
- %T :显示以十六进制表示的次要设备类型,用于字符和块设备的文件
- %u :显示用户的UID
- %U :显示用户的属主(用户名称)
- %w :以人类可读显示文件诞生的时间,-表示未知
- %W :显示文件诞生的时间,从纪元开始的秒数,若为0表示未知
- %x :显示文件最后的访问时间
- %X : 显示从1970年1月1日到最后访问的秒数
- %y : 显示文件最后的修改时间
- %Y : 显示从1970年1月1日到最后修改的秒数
- %z :显示文件最后的改动时间
- %Z : 显示从1970年1月1日到最后改动的秒数
测试三个时间的变化过程
首先先创建一个文件出来,使用stat查看文件三个时间
可以看到文件一创建出来三个时间是显示一致的,那么我们就做下测试,看使用什么命令会修改对应的时间。
1)使用cat命令
使用cat命令会修改文件的访问时间,看看会发生什么变化
只有访问时间发生了变化
[root@localhost ~]# cat a.txt
[root@localhost ~]# stat -c %x a.txt
2023-02-27 11:09:44.616235228 +0800
2)使用echo命令
使用echo命令往文件中写入内容
访问时间没有变化,而更改时间和改动时间有变化。
[root@localhost ~]# echo "123456" > a.txt
[root@localhost ~]# stat a.txt
文件:"a.txt"
大小:7 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:67259305 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2023-02-27 11:09:44.616235228 +0800
最近更改:2023-02-27 11:13:13.167684191 +0800
最近改动:2023-02-27 11:13:13.167684191 +0800
创建时间:-
3)使用chmod命令
使用chmod改变文件权限
改动时间发生了变化,其他的还是之前显示的时间
[root@localhost ~]# chmod 777 a.txt
[root@localhost ~]# stat a.txt
文件:"a.txt"
大小:7 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:67259305 硬链接:1
权限:(0777/-rwxrwxrwx) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2023-02-27 11:09:44.616235228 +0800
最近更改:2023-02-27 11:13:13.167684191 +0800
最近改动:2023-02-27 11:15:42.960443170 +0800
4)使用vim命令
使用vim后,若最后是使用:wq(保存退出)的方式,则三个时间都会修改,当然进入文件只是阅读一下,退出时只使用:q(退出),文件只会修改访问时间。
[root@localhost ~]# vim a.txt
[root@localhost ~]# stat a.txt
文件:"a.txt"
大小:11 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:67259305 硬链接:1
权限:(0777/-rwxrwxrwx) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2023-02-27 11:18:04.376103776 +0800
最近更改:2023-02-27 11:19:00.856767012 +0800
最近改动:2023-02-27 11:19:00.856767012 +0800
创建时间:-
[root@localhost ~]# vim a.txt
[root@localhost ~]# stat a.txt
文件:"a.txt"
大小:11 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:67259305 硬链接:1
权限:(0777/-rwxrwxrwx) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2023-02-27 11:21:21.261415749 +0800
最近更改:2023-02-27 11:19:00.856767012 +0800
最近改动:2023-02-27 11:19:00.856767012 +0800
创建时间:-
参考实例
1)显示文件的状态信息
显示文件的信息,可以看到有以下的一些信息内容。
[root@localhost ~]# stat anaconda-ks.cfg
文件:"anaconda-ks.cfg"
大小:1365 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:67144899 硬链接:1
权限:(0600/-rw-------) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:admin_home_t:s0
最近访问:2023-02-08 00:02:25.953010917 +0800
最近更改:2023-02-08 00:02:25.954010917 +0800
最近改动:2023-02-08 00:02:25.954010917 +0800
创建时间:-
2)以简洁的形式显示状态信息
虽然说是简洁了许多,不过看起来并不是很清晰每个数值含义。
[root@localhost ~]# stat -t anaconda-ks.cfg
anaconda-ks.cfg 1365 8 8180 0 0 fd00 67144899 1 0 0 1675785745 1675785745 1675785745 0 4096 system_u:object_r:admin_home_t:s0
3)显示文件的文件系统信息
[root@localhost ~]# stat -f anaconda-ks.cfg
文件:"anaconda-ks.cfg"
ID:fd0000000000 文件名长度:255 类型:xfs
块大小:4096 基本块大小:4096
块:总计:9201265 空闲:8092007 可用:8092007
Inodes: 总计:18411520 空闲:18277918
4)以指定样式显示文件的各个信息
这里列举几个比较常用到的样式,因为实在太多了,当然也可以自己尝试去显示每个样式显示的内容是什么。
[root@localhost ~]# stat -c %a 1.txt
644
[root@localhost ~]# stat -c %A 1.txt
-rw-r--r--
[root@localhost ~]# stat -c %B 1.txt
512
[root@localhost ~]# stat -c %b 1.txt
8
[root@localhost ~]# stat -c %x 1.txt
2023-02-27 09:12:37.948477716 +0800
[root@localhost ~]# stat -c %y 1.txt
2023-02-27 09:12:54.618199506 +0800
[root@localhost ~]# stat -c %z 1.txt
2023-02-27 09:12:54.618199506 +0800
5)显示命令的帮助信息
[root@localhost ~]# stat --help
用法:stat [选项]... 文件...
Display file or file system status.
Mandatory arguments to long options are mandatory for short options too.
-L, --dereference follow links
命令总结
stat命令使用起来还是比较容易,一般直接使用命令加文件即可显示文件的状态信息了,若觉得以上内容还行的,可以点赞支持一下!