面向 Linux 新手的 5 个“stat”命令示例
stat命令是查看文件或文件系统状态的有用实用程序。它检索文件类型等信息;八进制和人类可读的访问权限; SELinux 安全上下文字符串;文件生成时间、上次访问时间、上次数据修改时间、上次状态更改时间(人类可读的时间和自纪元以来的秒数)等等。
它可以选择指定自定义格式而不是默认格式来显示信息。在本指南中,我们将为 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 跟踪链接,请使用 -L
标志,如图所示。
$ 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
选项,该选项可以解释反斜杠转义序列并关闭尾随换行符的打印。例如,您需要在格式中使用 \n
来打印新行。
stat --printf='%U\n%G\n%C\n%z\n' /var/log/secure
上例中使用的文件格式序列的含义:
- %U – 所有者的用户名
- %G – 所有者的组名
- %C – SELinux 安全上下文字符串
- %z – 上次状态更改的时间,人类可读
5. 下面是一个示例,展示了文件系统接受的格式序列的使用。
stat --printf='%n\n%a\n%b\n' /
上述命令中使用的格式序列的含义。
- %n – 显示文件名
- %a – 打印非超级用户可用的空闲块
- %b – 输出文件系统中的总数据块
以简洁形式打印信息
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 文档以了解有关其支持的选项的详细信息。要查看所有接受的输出格式序列,请参阅 stat 手册页。
man stat
在本文中,我们为 Linux 新手解释了五个 stat 命令示例。使用下面的反馈表提出任何问题。