stat 命令用于显示文件或文件系统的状态信息。它可以显示文件的详细信息,如文件的大小、所有者、权限、时间戳等,也可以显示文件系统的使用情况。以下是 stat 命令的详细说明:
命令语法
stat [选项] [文件或目录]常见选项
-t:以简洁格式显示文件系统的状态信息。-f:显示文件系统的状态信息,而不是文件的状态信息。-c <格式>:指定输出的格式。--version:显示stat命令的版本信息。--help:显示stat命令的帮助信息。
常见用法
- 显示文件的详细信息
stat 文件名例如,要显示当前目录下的名为 “test.txt” 的文件的详细信息,可以使用以下命令:
stat test.txt输出示例:
File: test.txt
Size: 1024 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 123456 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ user)
Access: 2024-10-11 10:00:00.000000000 +0800
Modify: 2024-10-11 10:00:00.000000000 +0800
Change: 2024-10-11 10:00:00.000000000 +0800
Birth: -输出信息的含义如下:
File:文件名。Size:文件大小,以字节为单位。Blocks:文件占用的块数。IO Block:I/O 块大小。Device:文件所在的设备号。Inode:文件的 inode 号。Links:文件的硬链接数。Access:文件的权限。Uid:文件所有者的用户 ID 和用户名。Gid:文件所有者的组 ID 和组名。Access:文件的最后访问时间。Modify:文件的最后修改时间。Change:文件的最后状态改变时间。Birth:文件的创建时间(某些文件系统不支持此信息)。
- 显示文件系统的状态信息
stat -f 目录名例如,要显示当前目录所在的文件系统的状态信息,可以使用以下命令:
stat -f .输出示例:
File: .
ID: 0 Namelen: 255 Type: ext2/ext3
Blocks: Total: 1024000 Free: 512000 Available: 256000
Inodes: Total: 1024000 Free: 512000输出信息的含义如下:
File:文件名或目录名。ID:文件系统 ID。Namelen:文件名的最大长度。Type:文件系统类型。Blocks:文件系统的块总数、空闲块数和可用块数。Inodes:文件系统的 inode 总数和空闲 inode 数。
- 以简洁格式显示文件系统的状态信息
stat -t 目录名例如,要以简洁格式显示当前目录所在的文件系统的状态信息,可以使用以下命令:
stat -t .输出示例:
0 255 ext2/ext3 1024000 512000 256000 1024000 512000输出信息的含义与 stat -f 相同,只是以简洁格式显示。
- 指定输出格式
stat -c <格式> 文件名例如,要以自定义格式显示文件的大小和最后修改时间,可以使用以下命令:
stat -c "Size: %s, Modify: %y" test.txt输出示例:
Size: 1024, Modify: 2024-10-11 10:00:00.000000000 +0800常见的格式说明符如下:
%a:文件的最后访问时间,格式为 “秒”。%A:文件的最后访问时间,格式为 “YYYY-MM-DD HH:MM:SS”。%b:文件占用的块数。%B:I/O 块大小。%c:文件的最后状态改变时间,格式为 “秒”。%C:文件的最后状态改变时间,格式为 “YYYY-MM-DD HH:MM:SS”。%d:文件所在的设备号,格式为 “hex”。%D:文件所在的设备号,格式为 “十进制”。%F:文件类型。%g:文件所有者的组 ID。%G:文件所有者的组名。%i:文件的 inode 号。%m:文件的最后修改时间,格式为 “秒”。%M:文件的最后修改时间,格式为 “YYYY-MM-DD HH:MM:SS”。%n:文件名。%o:文件的权限,格式为 “八进制”。%s:文件大小,以字节为单位。%u:文件所有者的用户 ID。%U:文件所有者的用户名。
注意事项
stat命令的输出信息可能会因文件系统类型的不同而有所差异。- 在某些情况下,文件的创建时间可能无法获取,这取决于文件系统是否支持此信息。










