stat命令详解 📅 2026/7/19 3:34:11 stat是一个用于显示文件或文件系统详细状态信息的命令行工具--1。与ls -l相比它能提供更全面、更底层的元数据Metadata如文件大小、权限、所有者、各种时间戳、inode 号码等-。 命令语法与常用选项stat命令的基本语法是stat [选项]... 文件...核心选项选项说明-L,--dereference如果文件是符号链接则显示链接所指向的源文件信息而非链接本身。-f,--file-system显示文件所在文件系统的信息而非文件本身的信息。-c,--format格式使用用户自定义的格式输出信息。--printf格式类似于--format但会解释反斜杠转义字符如\n且不会自动添加换行符。-t,--terse以简洁模式输出信息通常在一行内显示所有信息便于脚本解析。 输出信息解读直接使用stat命令不加选项会输出文件的详细信息。$ stat ~/project/testfile.txt输出通常包含以下几部分File文件名。Size文件大小单位是字节。Blocks文件占用的文件系统块数量。IO Block文件系统的I/O块大小。Device文件所在设备的ID分别以十六进制和十进制显示。Inode文件的inode号码是文件的唯一标识符。Links指向该文件的硬链接数量。Access文件权限同时以八进制数字如0644和符号如-rw-r--r--两种形式显示。Uid / Gid文件所有者的用户ID/组ID及名称。Access (atime)文件的最后访问时间即文件数据最后一次被读取的时间。Modify (mtime)文件的最后修改时间即文件内容最后一次被更改的时间。Change (ctime)文件的最后状态变更时间即文件的元数据如权限、所有者最后一次被更改的时间。Birth (btime)文件的创建时间。注意此信息并非在所有文件系统上都可用例如较老的ext3文件系统可能不支持。 常用示例1. 显示文件系统信息使用-f选项可以查看文件所在磁盘分区的整体情况。$ stat -f /path/to/file.txt输出会显示文件系统类型、总块数、剩余块数、总inode数等信息。2. 自定义输出格式使用-c选项你可以精确控制stat的输出内容这在脚本中非常有用。# 只显示文件名和大小 $ stat -c %n %s /path/to/file.txt常用的格式序列包括-1%n文件名%s文件大小字节%a权限八进制%A权限可读格式%u/%U用户ID / 用户名%g/%G组ID / 组名%iinode号码%y最后修改时间mtime3. 简洁模式输出-t选项可以将所有信息压缩到一行便于程序解析。$ stat -t /path/to/file.txt 主要使用场景故障排查当怀疑文件被意外修改时通过检查Modify和Change时间戳来确认。脚本编程使用-c或-t选项获取特定元数据用于自动化任务。系统管理检查文件权限、所有者或使用-f监控磁盘分区的inode和空间使用情况。深入分析获取文件的inode号码、硬链接数等底层信息。⚠️ 注意事项符号链接默认情况下stat显示的是链接文件本身的信息。若需查看其指向的目标文件请使用-L选项。文件系统支持并非所有文件系统都记录文件的“出生时间”Birth time在不支持的系统上该字段会显示为-。