stat显示文件的状态信息
stat命令简介
stat命令是一个用于显示文件或目录的状态信息的命令。它可以显示文件的访问权限、所属用户、所属组、文件大小、创建时间、修改时间、访问时间等信息。使用stat命令可以帮助用户更好地了解文件或目录的属性和状态,从而更好地管理和操作它们。
stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。stat命令可以查看的信息包括:
- File:显示文件名
- Size:显示文件大小
- Blocks:文件使用的数据块总数
- IO Block:IO块大小
- regular file:文件类型(常规文件)
- Device:设备编号
- Inode:Inode号
- Links:链接数
- Access:文件的权限
- Gid、Uid:文件所有权的Gid和Uid
- access time:表示我们最后一次访问(仅仅是访问,没有改动)文件的时间
- modify time:表示我们最后一次修改文件的时间
- change time:表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等等
- Birth time : 文件创建时间,crtime,不过据查此属性linux已废弃,目前状态显示结果均为-
使用语法及参数说明
使用语法
用法:stat [OPTION]… FILE…
参数说明
参数 |
参数说明 |
-L |
显示软链接指向的原始文件信息 |
-f |
查看文件系统而非文件状态 |
-c |
按照指定的格式输出信息,文件有效格式在下方表格中 |
-t |
以简洁方式输出信息 简洁形式主要是把每个值的列头去掉了,只显示值,三个时间按照纪元至今秒数显示。 |
文件的有效格式序列
格式符格式符说明
%a八进制中的访问权限
%A人类可读形式的访问权
%b分配的块数(请参阅%B)
%B%b报告的每个块的大小(字节)
%CSELinux安全上下文字符串
%d十进制设备编号
%D十六进制的设备编号
%f十六进制原始模式
%F文件类型
%g所有者的组ID
%G所有者的组名称
%h硬链接数
%iinode数
%m挂载点
%n文件名
%N带取消引用(如果是符号链接)的带引号的文件名
%o最佳I/O传输大小提示
%s总大小,以字节为单位
%t主要设备类型(十六进制),用于字符/块设备特殊文件
%T次要设备类型(十六进制),用于字符/块设备特殊文件
%u所有者的用户ID
%U所有者的用户名
%w文件出生时间,人类可读;-如果未知
%W文件生成时间,自纪元起的秒数;如果未知,则为0
%x最后一次访问的时间,人类可读
%X上次访问的时间,自纪元起的秒数
%y上次修改的时间,人类可读
%Y上次修改的时间,自纪元起的秒数
%z最后更改的时间,人类可读
%Z上次更改的时间,自新纪元起的秒数
文件系统的有效格式序列
格式符格式符说明
%a非超级用户可用的空闲块
%b文件系统中的数据块总数
%c文件系统中的文件节点总数
%d文件系统中的空闲文件节点
%f文件系统中的空闲块
%i十六进制文件系统ID
%l文件名的最大长度
%n文件名
%s块大小(用于更快的传输)
%S基本块大小(用于块计数)
%t十六进制文件系统类型
%T人类可读形式的文件系统类型
————————————————
使用示例
获取命令帮助
stat --help
[root@node1 ~]# stat --help
用法:stat [选项]... 文件...
显示文件或文件系统的状态。
必选参数对长短选项同时适用。
跟随链接
显示文件系统状态而非文件状态
-c --format=FORMAT use the specified FORMAT instead of the default;
output a newline after each use of FORMAT
--printf=FORMAT like --format, but interpret backslash escapes,
and do not output a mandatory trailing newline;
if you want a newline, include \n in FORMAT
-t, --terse print the information in terse form
显示此帮助信息并退出
显示版本信息并退出
查看命令版本
stat --version
[root@node1 ~]# stat --version
stat (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
许可证 GPLv3+:GNU 通用公共许可证第 3 版或更新版本<https://gnu.org/licenses/gpl.html>。
本软件是自由软件:您可以自由修改和重新发布它。
在法律范围内没有其他保证。
查看文件状态信息
[root@node1 ~]# stat outfile
文件:outfile
大小:1024 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:67158031 硬链接:1
权限:(0600/-rw-------) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2023-05-30 23:14:55.874907615 +0800
最近更改:2023-05-30 23:14:51.821907783 +0800
最近改动:2023-05-30 23:14:51.821907783 +0800
创建时间:-
-f 查看文件所在文件系统的状态信息
[root@node1 ~]# stat -f outfile
文件:"outfile"
:fd0000000000 文件名长度:255 类型:xfs
块大小:4096 基本块大小:4096
块:总计:12305541 空闲:11864013 可用:11864013
Inodes: 总计:24623104 空闲:24590918
-t 以简洁方式输出文件信息
简洁形式主要是把每个值的列头去掉了,只显示值,三个时间按照纪元至今秒数显示
[root@node1 ~]# stat -t outfile
outfile 1024 8 8180 0 0 fd00 67158031 1 0 0 1685459695 1685459691 1685459691 0 4096 unconfined_u:object_r:admin_home_t:s0
-L 显示软链接原始文件状态信息
stat 软链接 显示的是软链接的信息
stat -L 软链接 显示的是软链接对应的原始文件信息
[root@node1 /]# stat bin
文件:bin -> usr/bin
大小:7 块:0 IO 块:4096 符号链接
设备:fd00h/64768d Inode:255381 硬链接:1
权限:(0777/lrwxrwxrwx) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:bin_t:s0
最近访问:2023-06-06 22:56:05.096417844 +0800
最近更改:2020-11-03 23:22:25.000000000 +0800
最近改动:2023-05-30 22:16:05.377003539 +0800
创建时间:-
[root@node1 /]# stat -L bin
文件:bin
大小:24576 块:80 IO 块:4096 目录
设备:fd00h/64768d Inode:100663427 硬链接:2
权限:(0555/dr-xr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:bin_t:s0
最近访问:2023-06-06 23:06:03.433465970 +0800
最近更改:2023-05-30 22:16:29.778004158 +0800
最近改动:2023-05-30 22:16:29.778004158 +0800
创建时间:-
[root@node1 /]#
-c 按照指定格式输出
获取文件的inode(也就是文件的ID列)
和ls -i 结果一样
[root@node1 ~]# stat -c %i outfile
67158031
[root@node1 ~]# ls -i outfile
67158031 outfile
获取文件所属用户或者用户ID
获取文件所属用户 %u 查看所属用户ID
stat -c %u file
[root@node1 ~]# stat -c %u outfile
0
获取文件所属用户ID %U 查看所属用户、
stat -c %U file
[root@node1 ~]# stat -c %U outfile
root
获取文件所属组或者所属组ID
获取文件所属组ID %g 查看所属组id
stat -c %g file
[root@node1 ~]# stat -c %g outfile
0
获取文件所属组 %G 查看所属组
stat -c %G file
[root@node1 ~]# stat -c %G outfile
root
获取文件磁盘挂载点
stat -c %m file
[root@node1 ~]# stat -c %m outfile
/
[root@node1 ~]# stat -c %m /dev/nvme0n1p1
/dev
获取文件访问时间
stat -c %x file
[root@node1 ~]# stat -c %x outfile
2023-05-30 23:14:55.874907615 +0800
获取文件修改时间
stat -c %z file
[root@node1 ~]# stat -c %z outfile
2023-05-30 23:14:51.821907783 +0800
获取文件权限
以字母显示
stat -c %A file
[root@node1 ~]# stat -c %A outfile
-rw-------
以数字显示
stat -c %a file
[root@node1 ~]# stat -c %a outfile
600