名称
stat - 显示文件或文件系统的状态信息
简介
stat [选项]... 文件...描述
stat 命令显示指定文件或文件系统的详细信息,包括大小、权限、拥有者、时间戳、inode 编号、块大小等。这些信息主要来自系统调用 stat()。该命令主要用于:
查看文件的详细元数据。
检查文件权限、时间戳、链接数等。
以自定义格式输出信息(如供脚本解析)。
显示文件系统(而非文件本身)的状态信息。
选项
格式说明符
--format 和 --printf 选项使用格式字符串,其中以 % 开头的指令会被替换为相应值。常用格式指令:
对于文件系统模式(-f),还有另外一组格式指令,如 %a(可用块数)、%b(总块数)、%c(文件节点总数)等。详情请参见 man stat。
退出状态
0 – 成功。
>0 – 发生错误(例如文件不存在、权限不足等)。
常用示例
1. 显示文件的详细信息
stat file.txt输出示例:
File: file.txt
Size: 1024 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 1234567 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ group)
Access: 2025-03-15 10:30:00.000000000 +0800
Modify: 2025-03-14 09:20:00.000000000 +0800
Change: 2025-03-14 09:20:00.000000000 +0800
Birth: 2025-03-13 15:10:00.000000000 +08002. 显示符号链接指向的文件信息
stat -L symlink3. 显示文件系统信息(而非文件本身)
stat -f /输出示例:
File: "/"
ID: 1234567890abcde Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 12345678 Free: 9876543 Available: 8765432
Inodes: Total: 1234567 Free: 12345604. 简洁输出(适合脚本)
stat -t file.txt输出一行摘要,各字段用空格分隔,如:
file.txt 1024 8 81a4 1000 1000 801 1234567 1 0 0 1742029800 1741987200 1741987200 1741936200 40965. 自定义格式输出
stat -c "%n: %s bytes, permissions %A" file.txt输出:
file.txt: 1024 bytes, permissions -rw-r--r--6. 仅获取文件大小
stat -c %s file.txt7. 获取文件的最后修改时间(Unix 时间戳)
stat -c %Y file.txt8. 获取文件权限(八进制)
stat -c %a file.txt9. 同时显示多个文件的信息
stat file1.txt file2.txt10. 使用 --printf 输出不带换行的信息
stat --printf "%n\t%s\n" file1.txt file2.txt11. 获取文件系统块大小和可用空间
stat -f -c "块大小: %S, 可用块: %a" /home12. 查找最近修改过的文件(结合 find)
find . -type f -exec stat -c "%y %n" {} \; | sort按修改时间排序显示文件。
注意事项
stat显示的时间精度取决于文件系统和系统支持,可能包含纳秒部分。文件创建时间(
%w、%W)并非所有文件系统都支持(如 ext4 记录创建时间,但某些 Unix 可能不支持)。在不支持的系统上会显示-或0。对于符号链接,默认显示链接本身的信息(大小、权限等),使用
-L显示目标文件信息。简洁模式
-t输出的字段顺序和数量固定,但不同系统可能略有差异,脚本使用时建议用-c自定义格式以保证兼容性。某些旧系统可能没有
stat命令,或功能较弱(如 BSD 的stat选项与 Linux 不同)。可参考man stat确认当前环境支持的选项。
相关命令
ls -l– 列出文件基本信息(权限、链接数、所有者、大小、修改时间)。ls -i– 显示 inode 编号。file– 确定文件类型。du– 估计文件空间使用量。df– 报告文件系统磁盘空间使用情况。touch– 更改文件时间戳。chmod/chown– 更改文件权限和所有者。stat(系统调用) – C 语言中的同名函数。