stat
(状态)命令在Linux中是一个显示文件或文件系统的状态信息的工具。相对于ls
命令,stat
提供了更为详细的信息。主要包括文件的大小、iNode节点、块的数量、访问权限、访问时间、修改时间等多项信息。此命令对于分析文件属性有着重要的作用。
stat
命令在绝大多数的Linux发行版中都是可用的,包括但不仅限于:Ubuntu、Debian、CentOS、Red Hat、Fedora、Arch Linux等。在某些极度精简的发行版或者嵌入式Linux中可能需要自己手动安装。
安装方法:
对于Debian系的系统(如Ubuntu),可使用apt-get
命令进行安装:
[[email protected] ~]$ sudo apt-get install coreutils
对于Red Hat系的系统(如CentOS),可使用yum
(CentOS 7)或者dnf
(CentOS 8)命令进行安装:
[[email protected] ~]$ sudo yum install coreutils #CentOS 7
[[email protected] ~]$ sudo dnf install coreutils #CentOS 8
注意:stat
命令通常自带在coreutils
包中,如果系统中已经安装了coreutils
包,就无需再次安装。
基本语法格式如下:
stat [options] filename
以表格的形式梳理stat
命令的一些重要参数:
选项 | 说明 |
---|---|
-f | 显示文件系统状态而非文件状态 |
-t | 以terse(简洁)方式显示信息,方便解析 |
-c | 定义输出格式 |
–help | 显示命令帮助信息 |
–version | 显示命令版本信息 |
[[email protected] ~]$ stat filename
运行上述命令后,将显示出所查询文件的各项状态信息。
[[email protected] ~]$ stat -f filename
使用-f
参数可以显示出文件系统的状态而非文件的状态。
[[email protected] ~]$ stat -t filename
这个命令会以一种更为简洁(terse)的方式来显示所查询文件的状态信息。
[[email protected] ~]$ stat -c '%A %h %U %G %s' filename
在这个命令中,-c
参数后面的'%A %h %U %G %s'
就是自定义的输出格式,其中%A
表示可访问性,%h
表示硬链接数目,%U
表示文件所有者,%G
表示文件所有者所在的组,%s
表示文件大小。
[[email protected] ~]$ stat -c '%x' filename
-c '%x'
参数表示输出文件的最后访问时间。
[[email protected] ~]$ stat -L symbolic_link
命令中的-L
参数用于处理软链接文件,查看符号链接对应的原始文件信息。
[[email protected] ~]$ stat -c '%w' filename
-c '%w'
参数将输出文件的创建时间。
[[email protected] ~]$ stat -c '%i' filename
-c '%i'
参数将输出文件的inode号。
[[email protected] ~]$ stat -c '%s' filename
-c '%s'
参数将输出文件的大小,单位是bytes。
[[email protected] ~]$ stat -c '%y' filename
-c '%y'
参数表示输出文件的最后修改时间。
[[email protected] ~]$ stat -c '%o' filename
命令中的-c '%o'
参数将输出文件的块大小。
[[email protected] ~]$ stat -f /path/to/directory
在此命令中,-f
参数用于显示特定文件系统的状态,而不是文件。
[[email protected] ~]$ stat -c '%a' filename
命令中的-c '%a'
参数将以八进制显示文件的权限。
[[email protected] ~]$ stat -c '%b' filename
命令中的-c '%b'
参数将输出文件占用的物理块数量。
[[email protected] ~]$ stat -c '%F' filename
在这个命令中,-c '%F'
参数将输出文件的类型。
bash: stat: command not found
,请按照上述的方法进行安装。-t
或者-c
可以自定义输出的格式和信息。