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
命令的输出信息可能会因文件系统类型的不同而有所差异。- 在某些情况下,文件的创建时间可能无法获取,这取决于文件系统是否支持此信息。