前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 下的 Stat 命令

Linux 下的 Stat 命令

作者头像
雪梦科技
发布2020-05-11 17:30:17
4.3K0
发布2020-05-11 17:30:17
举报
文章被收录于专栏:ITCoderITCoder

stat是一个命令,它用来显示文件或者文件系统的详细信息。

本文详细讲解如何使用stat命令.

使用 stat 命令

stat命令的语法如下:

代码语言:javascript
复制
stat [OPTION]... FILE...

stat接受一个或者多个输入的FILE,和一系列的选项,用来控制命令的行为和输出结果。

让我们看看下面的例子:

代码语言:javascript
复制
stat file.txt

输出结果如下:

代码语言:javascript
复制
  File: file.txt
  Size: 4030      	Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d	Inode: 13633379    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   linuxize)   Gid: ( 1000/   linuxize)
Access: 2019-11-06 09:52:17.991979701 +0100
Modify: 2019-11-06 09:52:17.971979713 +0100
Change: 2019-11-06 09:52:17.971979713 +0100
 Birth: -

当没有添加任何选项时, stat显示下面的文件信息:

  • File - 文件名称
  • Size - 文件大小,以比特为单位展示
  • Blocks - 文件占用块数目
  • IO Block - 每个块所占比特数
  • File type - 文件类型(例如:正则文件,目录,软连接…)
  • Device - 以 16 进制和 10 进制表示的设备数
  • Inode - 节点数
  • Links - 硬连接数
  • Access - 用数字和符号表示的权限
  • Uid - 用户 ID 和拥有者的名字
  • Gid - 用户组 ID 和拥有者的名字
  • Context - SELinux 安全内容
  • Access - 文件最后被访问的时间
  • Modify - 文件内容最后被修改的时间
  • Change - 文件属性或者内容最后被修改的时间
  • Birth - 文件创建时间(Linux 下不支持)

显示关于文件系统的信息

为了获取文件归属的文件系统相关信息,而不是获取文件本身的信息,我们使用-f,(--file-system)选项:

代码语言:javascript
复制
stat -f file.txt

这个命令的输出看起来是这样:

代码语言:javascript
复制
  File: "package.json"
    ID: 8eb53097b4494d20 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 61271111   Free: 25395668   Available: 22265851
Inodes: Total: 15630336   Free: 13979610

stat-f选项一起运行时,它会展示如下信息:

  • File - 文件名称
  • ID - 以 16 进制表示文件系统 ID
  • Namelen - 文件名字的最长长度
  • Fundamental block size - 文件系统上每个块的大小
  • Blocks:
    • Total - 文件系统上的总块数
    • Free - 文件系统上的剩余块数
    • Available - 对于非 Root 用户的可用剩余块数
  • Inodes:
    • Total - 文件系统上的总节点数
    • Free - 文件系统上的剩余节点数

间接(跟进)软连接

默认情况下,stat 不会跟进软连接。如果你对一个软连接运行这个命令,输出结果将会包含软连接的信息,而不是它所指向文件的信息。

代码语言:javascript
复制
stat /etc/resolv.conf
代码语言:javascript
复制
  File: /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
  Size: 39        	Blocks: 0          IO Block: 4096   symbolic link
Device: 801h/2049d	Inode: 8126659     Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-11-06 21:12:26.875956073 +0100
Modify: 2018-07-24 11:11:48.128794519 +0200
Change: 2018-07-24 11:11:48.128794519 +0200
 Birth: -

为了间接跟进软连接,并且显示软连接指向文件的信息,请使用-L,(--dereference)选项。

代码语言:javascript
复制
stat -L /etc/resolv.conf
代码语言:javascript
复制
  File: /etc/resolv.conf
  Size: 715       	Blocks: 8          IO Block: 4096   regular file
Device: 17h/23d	Inode: 989         Links: 1
Access: (0644/-rw-r--r--)  Uid: (  101/systemd-resolve)   Gid: (  103/systemd-resolve)
Access: 2019-11-06 20:35:25.603689619 +0100
Modify: 2019-11-06 20:35:25.555689733 +0100
Change: 2019-11-06 20:35:25.555689733 +0100
 Birth: -

定制输出结果

stat 命令有两个选项,允许你根据需要定制结果: -c,(--format="format") 和 --printf="format"

这两个选项的主要不同点在于,当命令最后有两个或者更多个文件时,--format在每个输出结果后面添加一个换行符,而--printf则会解释反义符号。

对于文件和文件系统来,有很多格式指令可以和--format,--printf一起搭配使用。

例如,仅仅查看文件的类型,你可以使用:

代码语言:javascript
复制
stat --format="%F" /dev/null
代码语言:javascript
复制
character special file

你也可以合并任何数量的格式指定,并自定义分隔符。分隔符可以是单个字符或者一个字符串。

代码语言:javascript
复制
stat --format="%n,%F" /dev/null
代码语言:javascript
复制
/dev/null,character special file

为了解释换行或者制表符号,请使用--printf选项:

代码语言:javascript
复制
stat --printf='Name: %n\nPermissions: %a\n' /etc

\n打印出一个新行

代码语言:javascript
复制
Name: /etc
Permissions: 755

stat也可以以简明扼要的方式展示信息。这种格式在使用其他工具进行解析时很有用处。

配合选项-t(--terse)选项输入命令,可以以简明扼要的方式打印输出结果。

代码语言:javascript
复制
stat -t /etc
代码语言:javascript
复制
/etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096

为了获取关于文件或者文件系统的完整格式指令列表,请在终端输入man stat 或者 stat --help

总结

stat命令打印了文件和文件系统的信息。

在 Linux 下,还有其他几个命令可以显示文件信息。ls就是最有用的一个,但是它只显示stat信息中的一部分。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年11月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用 stat 命令
  • 显示关于文件系统的信息
  • 间接(跟进)软连接
  • 定制输出结果
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档