Linux基础命令-stat显示文件的状态信息

  • Post author:
  • Post category:linux




文章目录



stat


命令介绍


语法格式


基本参数


测试三个时间的变化过程


1)使用cat命令


2)使用echo命令


3)使用chmod命令


4)使用vim命令


参考实例


1)显示文件的状态信息


2)以简洁的形式显示状态信息


3)显示文件的文件系统信息


4)以指定样式显示文件的各个信息


5)显示命令的帮助信息


命令总结

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命令使用起来还是比较容易,一般直接使用命令加文件即可显示文件的状态信息了,若觉得以上内容还行的,可以点赞支持一下!



版权声明:本文为rhn_111原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。