" />
侧边栏壁纸
  • 累计撰写 29 篇文章
  • 累计创建 41 个标签
  • 累计收到 9 条评论

目 录CONTENT

文章目录

linux命令—stat

Jhl
Jhl
2025-09-12 / 0 评论 / 0 点赞 / 3 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

命令简介

stat是Linux中用于查看文件或文件系统的详细状态信息的强大命令。它比ls -l更全面,其输出信息包括但不限于:文件大小、权限、所有者、最后访问/修改/状态变更时间、inode号、所在设备信息等。

用法

stat命令的语法格式如下

stat [选项] 文件/目录/符号链接
#选项可选

stat命令的常用选项及说明如下

-L,--dereference:支持符号连接
-f,--file-system:显示文件系统状态而非文件状态
-t,--terse:以简洁方式输出信息
-c,--format=FORMAT:自定义输出格式(支持格式符)
--help:显示指令的帮助信息
--version:显示指令的版本信息

命令案例场景

1.默认输出:查看文件完整状态(无选项)

[root@blog ~]# stat anaconda-ks.cfg
  文件:anaconda-ks.cfg
  大小:1505            块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:67478510    硬链接:1
权限:(0600/-rw-------)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:admin_home_t:s0
最近访问:2025-05-29 21:30:49.502452114 +0800
最近更改:2025-05-29 21:30:49.622455612 +0800
最近改动:2025-05-29 21:30:49.622455612 +0800
创建时间:2025-05-29 21:30:49.502452114 +0800

2.查看多个文件信息

[root@blog ~]# stat anaconda-ks.cfg /etc/yum.repos.d/redhat.repo #可以同时接受多个参数,并依次显示每个文件的信息。
  文件:anaconda-ks.cfg
  大小:1505            块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:67478510    硬链接:1
权限:(0600/-rw-------)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:admin_home_t:s0
最近访问:2025-05-29 21:30:49.502452114 +0800
最近更改:2025-05-29 21:30:49.622455612 +0800
最近改动:2025-05-29 21:30:49.622455612 +0800
创建时间:2025-05-29 21:30:49.502452114 +0800
  文件:/etc/yum.repos.d/redhat.repo
  大小:358             块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:69108248    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:system_conf_t:s0
最近访问:2025-05-30 11:50:13.236899775 +0800
最近更改:2025-05-30 11:50:13.235899733 +0800
最近改动:2025-05-30 11:50:13.235899733 +0800
创建时间:2025-05-30 11:50:13.235899733 +0800

3.查看文件系统状态(而非单个文件)

[root@blog ~]# stat -f /home #使用-f选项来显示文件所在文件系统的状态,而不是文件本身的状态。
  文件:"/home"
    ID:fd0000000000 文件名长度:255     类型:xfs
块大小:4096       基本块大小:4096
    块:总计:10469376   空闲:9259897    可用:9259897
Inodes: 总计:20971520   空闲:20838518
#输出将包含文件系统的信息,如类型(Type)、块大小(Block size)、总块数(Total blocks)、空闲块数(Free blocks)等。这对于快速检查磁盘使用情况很有用。

4.简洁输出

[root@blog ~]# stat -t anaconda-ks.cfg
anaconda-ks.cfg 1505 8 8180 0 0 fd00 67478510 1 0 0 1748525449 1748525449 1748525449 1748525449 4096 system_u:object_r:admin_home_t:s0
#按固定顺序输出字段,便于脚本解析

5.自定义格式输出

使用--printf或-c选项可以自定义输出的格式和内容。
格式符示例:
   %n: 文件名
   %s: 文件大小(字节)
   %U: 所有者用户名
   %G: 所属组名
   %i: inode 编号
   %A: 权限(符号格式,如 -rw-r--r--)
   %a: 权限(八进制数字格式,如 644)
   %x,%y,%z,%w: 分别表示访问时间(atime),修改时间(mtime),状态变更时间(ctime),创建时间 (btime)
   %F: 文件类型(如 “普通文件(regular file)”, “目录(directory)”)

应用案例:
#1)只显示文件名和大小:
[root@blog ~]# stat -c "File: %n Size: %s bytes" anaconda-ks.cfg
File: anaconda-ks.cfg Size: 1505 bytes

#2)只显示inode编号(常用于调试硬链接):
[root@blog ~]# stat -c %i  anaconda-ks.cfg
67478510

#3)以更易读的格式显示修改时间:
[root@blog ~]# stat -c "这个文件最后修改时间是:%y" anaconda-ks.cfg
这个文件最后修改时间是:2025-05-29 21:30:49.622455612 +0800

#4)批量查看多个文件的权限和所有者:
[root@blog ~]# stat -c "%A %U %G %n" *.cfg 
 #这条命令会列出当前目录下所有.cfg文件的权限、所有者、所属组和文件名
-rw------- root root anaconda-ks.cfg

6.跟踪符号链接(默认解引用)

默认情况下,stat会跟踪符号链接并显示其指向的目标文件的信息。
[root@blog ~]# stat /var/mail
  文件:/var/mail -> spool/mail
  大小:10              块:0          IO 块:4096   符号链接
设备:fd00h/64768d      Inode:101618387   硬链接:1
权限:(0777/lrwxrwxrwx)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:mail_spool_t:s0
最近访问:2025-09-12 09:34:28.921770355 +0800
最近更改:2024-06-25 22:28:11.000000000 +0800
最近改动:2025-05-29 21:25:12.135806195 +0800
创建时间:2025-05-29 21:25:12.128806007 +0800

如果想要查看符号链接本身的信息(如大小、时间戳),而不是它指向的目标,需要使用-L或--dereference选项来禁用跟踪。
[root@blog ~]# stat -L /var/mail
  文件:/var/mail
  大小:18              块:0          IO 块:4096   目录
设备:fd00h/64768d      Inode:33896061    硬链接:2
权限:(0775/drwxrwxr-x)  Uid:(    0/    root)   Gid:(   12/    mail)
环境:system_u:object_r:mail_spool_t:s0
最近访问:2025-05-29 21:30:51.521510955 +0800
最近更改:2025-05-29 21:30:18.434546704 +0800
最近改动:2025-05-29 21:30:18.434546704 +0800
创建时间:2025-05-29 21:25:12.129806033 +0800

注意事项

  1. 善用Tab键补全: 输入路径时,按Tab键可以让系统自动补全目录名或文件名,避免拼写错误并提高效率

  2. 通过man stat查看完整手册

0

评论区