stat命令是查看文件或文件系统状态的有用工具。 它检索诸如文件类型的信息; 八进制访问权和人类可读; SELinux安全上下文字符串 ; 文件出生时间,上次访问时间, 上次数据修改时间 ,上次状态更改时间以及自Epoch以来的秒数等等。
它有一个选项来指定一个自定义格式,而不是默认的,用于显示信息。 在本指南中,我们将查看Linux新手的五个stat命令示例。
检查Linux文件状态
1.使用stat最简单的方法是为它提供一个文件作为参数。 以下命令将显示文件/ var / log / syslog的大小,块,IO块,文件类型,inode值,链接数量以及更多信息,如屏幕截图所示:
$ stat /var/log/syslog File: '/var/log/syslog' Size: 26572 Blocks: 56 IO Block: 4096 regular file Device: 80ah/2058d Inode: 8129076 Links: 1 Access: (0640/-rw-r-----) Uid: ( 104/ syslog) Gid: ( 4/ adm) Access: 2018-04-06 09:42:10.987615337 +0530 Modify: 2018-04-06 11:09:29.756650149 +0530 Change: 2018-04-06 11:09:29.756650149 +0530 Birth: -
检查文件系统状态
2.在前面的示例中,stat命令将输入文件视为普通文件,但要显示文件系统状态而不是文件状态,请使用-f
选项。
$ stat -f /var/log/syslog File: "/var/log/syslog" ID: ce97e63d2201c974 Namelen: 255 Type: ext2/ext3 Block size: 4096 Fundamental block size: 4096 Blocks: Total: 84769790 Free: 16012830 Available: 11700997 Inodes: Total: 21544960 Free: 20995459
您也可以提供一个目录/文件系统作为参数,如图所示。
$ stat -f / File: "/" ID: ce97e63d2201c974 Namelen: 255 Type: ext2/ext3 Block size: 4096 Fundamental block size: 4096 Blocks: Total: 84769790 Free: 16056471 Available: 11744638 Inodes: Total: 21544960 Free: 21005263
启用以下符号链接
3.由于Linux支持链接( 符号链接和硬链接 ),某些文件可能有一个或多个链接,甚至可能存在于文件系统中。
要启用stat来跟踪链接,请使用-f
标志,如图所示。
$ stat -L / File: '/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 80ah/2058d Inode: 2 Links: 25 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2018-04-09 10:55:55.119150525 +0530 Modify: 2018-02-20 11:15:54.462893167 +0530 Change: 2018-02-20 11:15:54.462893167 +0530 Birth: -
使用自定义格式显示信息
4. stat还允许您使用特定或自定义格式而不是默认格式。 -c
标志用于指定使用的格式,它在每次使用格式序列后打印换行符。
或者,您可以使用--printf
选项来启用对反斜杠转义序列的解释并关闭--printf
换行符的打印。 例如,您需要在格式中使用\n
来打印新行。
# stat --printf='%U\n%G\n%C\n%z\n' /var/log/secure
上例中使用的文件格式序列的含义:
- %U - 所有者的用户名
- %G - 所有者的组名称
- %C - SELinux安全上下文字符串
- %z - 上次状态更改的时间,可读的
这是一个显示使用文件系统的可接受格式序列的例子。
$ stat --printf='%n\n%a\n%b\n' /
上述命令中使用的格式序列的含义。
- %n - 显示文件名称
- %a - 打印可用于非超级用户的空闲块
- %b - 输出文件系统中的全部数据块
以Terse表格打印信息
6. -t
选项可用于以简洁的形式打印信息。
$ stat -t /var/log/syslog /var/log/syslog 12760 32 81a0 104 4 80a 8129076 1 0 0 1523251873 1523256421 1523256421 0 4096
最后一点,你的shell可能有自己的stat版本,请参考shell的文档,了解它支持的选项的细节。 要查看所有接受的输出格式序列,请参阅统计手册页。
$ man stat
在本文中,我们解释了Linux新手的五个stat命令示例。 请使用下面的反馈表来询问任何问题。