Linux命令之显示文件状态信息stat
Posted 二木成林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令之显示文件状态信息stat相关的知识,希望对你有一定的参考价值。
概述
stat
命令可以用于显示文件的状态信息,比 ls
命令输出的信息更加详细。
如图可见 stat
命令可以查看的信息包括:
File
:文件名及文件绝对路径。Size
:文件大小。Blocks
:文件使用的数据块数。IO Block
:IO 块大小。Device
:设备编号。Inode
:inode 号。Links
:链接数。Access
:文件的权限。Uid
:文件的所有者 ID。Gid
:文件所属组 ID。Access
:表示最后一次访问文件的时间(只是访问,没有修改)。Modify
:表示最后一次修改文件的时间。Change
:表示最后一次对文件属性改变的时间,包括权限、大小、属性等。Birth
:文件创建时间,不过已经未用了,显示均为-
。
语法
该命令的语法如下:
stat [选项] 文件或目录名
该命令支持的选项有:
选项 | 说明 |
---|---|
-L, --dereference | 支持符号连接,即使用该选项会显示的原始文件状态信息 |
-f, --file-system | 显示文件系统状态而非文件状态 |
-c, --format=FORMAT | 按照指定格式输出,结尾有换行 |
–printf=FORMAT | 类似于 --format 选项,但是解释反斜杠转义,而不是输出强制性换行符。如果需要换行,需要在 FORMAT 中包含换行符 \\n |
-t, --terse | 以简洁方式输出信息 |
–help | 显示指令的帮助信息 |
–version | 显示指令的版本信息 |
其中 FORMAT
能够支持有效格式符(不包括文件系统)如下:
格式符 | 说明 |
---|---|
%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 | 文件生成时间,自纪元起的秒数;如果未知,则为0 |
%x | 最后一次访问的时间,人类可读 |
%X | 上次访问的时间,自纪元起的秒数 |
%y | 上次修改的时间,人类可读 |
%Y | 上次修改的时间,自纪元起的秒数 |
%z | 最后更改的时间,人类可读 |
%Z | 上次更改的时间,自新纪元起的秒数 |
其中 FORMAT
能够支持有效格式符(包括文件系统)如下:
格式符 | 说明 |
---|---|
%a | 非超级用户可用的空闲块 |
%b | 文件系统中的数据块总数 |
%c | 文件系统中的文件节点总数 |
%d | 文件系统中的空闲文件节点 |
%f | 文件系统中的空闲块 |
%i | 十六进制文件系统ID |
%l | 文件名的最大长度 |
%n | 文件名 |
%s | 块大小(用于更快的传输) |
%S | 基本块大小(用于块计数) |
%t | 十六进制文件系统类型 |
%T | 人类可读形式的文件系统类型 |
使用
查看指定文件状态信息
如果要查看指定文件或目录的状态信息,命令格式如下:
# 语法
stat 文件名
# 示例
stat test.txt
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/4b83dd62ef634e43b37a8c8a48c01971.png)
### 查看文件所在文件系统状态信息
如果要查看指定文件所在文件系统的状态信息,可以加上 `-f` 选项进行查看。命令格式如下:
```bash
# 语法
stat -f 文件名
# 示例
stat -f test.txt
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/22001f42237b40b383d6288a1f9d9b17.png)
### 查看符号链接指向的原文件状态信息
如果要查看符号链接所指向的原文件的状态信息,需要加上 `-L` 选项。命令格式如下:
```bash
# 语法
stat -L 符号链接文件名
# 示例
stat -L test.link
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/ec2a823fcd08426791186ae76b87ad3c.png)
### 获取文件指定信息
如果只是想要获取到文件的某部分状态信息,可以通过 `-c` 选项显示指定格式符所表示的信息。命令格式如下:
```bash
# 语法
stat -c 格式符 文件名
# 示例
# 获取文件 inode
stat -c %i test.txt
# 获取文件所属用户名和用户ID
stat -c "%U:%u" test.txt
# 获取文件所属组名和组ID
stat -c "%G:%g" test.txt
# 获取文件访问时间
stat -c %x test.txt
# 获取文件权限
stat -c %A test.txt
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/e6e61e78a7484d49a08e6b5cb759a42c.png)
以上是关于Linux命令之显示文件状态信息stat的主要内容,如果未能解决你的问题,请参考以下文章