简介

stat命令用来显示文件或文件系统的详细信息

命令格式

stat [OPTION]… FILE…

常用参数

-L 支持符号链接
-f 显示文件系统的信息,而不是有关文件本身的信息
-t 以简洁的方式输出
-c 以指定的格式显示文件信息
—printf 格式化输出的信息,支持换行符和制表符
—help 显示命令帮助信息
—version 显示命令版本信息

state 输出的含义

File 文件名称
Size 文件的大小(以字节为单位)
Blocks 文件占用的已分配块数
IO Block 每个块的大小(以字节为单位)
File type 例如常规文件,目录,符号链接…
Device 设备编号(十六进制和十进制)
Inode 索引节点编号
Links 硬连接数
Access 数字和符号方法中的文件权限
Uid 所有者的用户ID和名称
Gid 群组ID和所有者名称
Context SELinux安全上下文
Access 上次访问文件的时间,当文件内容被访问时,更新这个时间
Modify 上次修改文件内容的时间,当文件的数据内容被修改时,更新这个时间。
Change 上次更改文件属性或内容的时间。当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数

stat -f 输出的含义

File 文件名
ID 十六进制文件系统ID
Type 文件系统类型
Block size block 块的大小
Fundamental block size 文件系统上每个块大小
Blocks 块信息
Total 文件系统中的总块数
Free 文件系统中可用的块数
Available 非root用户可用的可用块数
Inodes inode 节点数
Total 文件系统中的总索引节点数
Free 文件系统中空闲索引节点的数量

自定义输出

stat命令有两个选项,可让您根据需要自定义输出:-c,(-format =”format”)和—printf =”format”。这两个选项的区别在于,
当两个或多个文件用作操作符时,—format在每个操作数的输出之后自动添加换行符。 —printf解释反斜杠转义。—format和—printf可以使用许多文件格式和文件系统的格式指令。

有效的文件格式

%a 八进制权限
%A 用可读性较好的方式输出权限
%b 计算已分配块数(参见%B)
%B 以字节为单位输出%b 所报告的每个块的大小
%C SELinux 安全环境字符串
%d 十进制设备编号
%D 十六进制设备编号
%f 十六进制原始模式
%F 文件类型
%g 文件的属组ID
%G 文件的属组组名
%h 硬链接数量
%i Inode 编号
%m 挂载点
%n 文件名
%N 如果对象是一个符号链接,显示引用到的其它文件名
%o I/O 块大小
%s 总计大小,以字节为单位
%t 十六进制主设备类型
%T 十六进制子设备类型
%u 文件的属主ID
%U 文件的属主用户名
%w 文件创建时间,若未知则显示”-“
%W 从UNIX 元年起以秒计的文件创建时间,若未知则显示”-“
%x 上次访问时间
%X 从UNIX 元年起以秒计的上次访问时间
%y 上次修改时间
%Y 从UNIX 元年起以秒计的上次修改时间
%z 上次更改时间
%Z 从UNIX 元年起以秒计的上次更改时间

有效的文件系统格式

%a 非超级用户可用的剩余块数
%b 文件系统的总数据块数
%c 文件系统中文件节点总数
%d 文件系统中空闲文件节点数
%f 文件系统中空闲块数
%i 十六进制文件系统ID
%I 允许的文件名最大长度
%n 文件名
%s 块大小(用于快速传输)
%S 基本块大小(用于块计数)
%t 十六进制类型描述
%T 可读性较好的类型描述

示例

  1. [root@localhost ~]# man pwd > test.txt
  2. [root@localhost ~]# stat test.txt
  3. File: test.txt
  4. Size: 1601 Blocks: 8 IO Block: 4096 regular file
  5. Device: fd00h/64768d Inode: 68239821 Links: 1
  6. Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
  7. Context: unconfined_u:object_r:admin_home_t:s0
  8. Access: 2021-03-30 13:23:47.099543369 -0400
  9. Modify: 2021-03-30 13:23:47.108543370 -0400
  10. Change: 2021-03-30 13:23:47.108543370 -0400
  11. Birth: -
  12. [root@localhost ~]# stat -f test.txt
  13. File: "test.txt"
  14. ID: fd0000000000 Namelen: 255 Type: xfs
  15. Block size: 4096 Fundamental block size: 4096
  16. Blocks: Total: 4587008 Free: 4351244 Available: 4351244
  17. Inodes: Total: 18358272 Free: 18327015
  18. [root@localhost ~]# stat -t test.txt
  19. test.txt 1601 8 81a4 0 0 fd00 68239821 1 0 0 1617125027 1617125027 1617125027 0 4096 unconfined_u:object_r:admin_home_t:s0
  20. ## -L 参数示例
  21. [root@localhost ~]# touch a
  22. [root@localhost ~]# ln -s a b
  23. [root@localhost ~]# ll
  24. total 0
  25. -rw-r--r--. 1 root root 0 Mar 30 13:42 a
  26. lrwxrwxrwx. 1 root root 1 Mar 30 13:42 b -> a
  27. ## 省略了很多不需要的内容
  28. [root@localhost ~]# stat a
  29. Inode: 68239822
  30. [root@localhost ~]# stat b ## 此时查看的是链接文件 b 的信息, 如果想要查看 a 文件, 可以使用 -L 参数
  31. Inode: 68239823
  32. [root@localhost ~]# stat -L b
  33. Inode: 68239822
  34. ## -c
  35. ## --printf
  36. [root@localhost ~]# stat --printf='Name: %n\nPermissions: %a\n' test.txt
  37. Name: test.txt
  38. Permissions: 644