stat 命令

stat 命令用于显示文件或文件系统的状态信息,stat 命令输出的信息比 ls 命令输出的信息要详尽得多。

命令用法

$ stat [OPTION]... FILE...

常用可选参数

参数

说明

-L, --dereference

跟踪符号连接

-f, --file-system

显示文件系统状态信息而不是文件的状态信息

-c, --format=FORMAT

指定输出格式 FORMAT, 每个打印信息会跟随输出空行

-t, --terse

以简洁的形式打印信息

至于上述提到的 FORMAT,根据要查看文件还是文件系统有不同的参数:

对于文件状态信息:

参数

说明

%A

以可读形式显示访问权限

%b

显示分配的块数目

%B

每一个块的字节大小

%d

十进制的设备编号

%D

十六进制的设备编号

%F

文件类型

%g

文件拥有者属组 ID

%G

文件拥有者属组名

%h

硬链接的数目

%i

inode 编号

%m

挂载点

%n

文件名

%N

如果是符号链接的话,显示引用名

%s

总字节数

%u

拥有者的用户 ID

%U

拥有者的用户名

%w

文件创建时间,以可读形式显示

%x

最后访问时间,以可读形式显示

%y

最后修改时间,以可读形式显示

%z

状态最近修改时间,以可读形式显示

对于文件系统状态信息:

参数

说明

%a

对非超级用户的可用空闲块

%b

文件系统的总块数

%c

文件系统的总文件节点数

%d

文件系统的空闲文件节点数

%f

文件系统的空闲块数

%l

文件名的最大长度

%n

文件名

%s

用于快速传输的块大小

%S

用于块计算的块大小

%T

以可读形式显示文件系统类型

结果参数解析

显示文件状态信息

$ stat sniffer.py
  File: 'sniffer.py'
  Size: 875             Blocks: 8          IO Block: 512    regular file
Device: ch/12d  Inode: 1407374883601372  Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/ kingdee)   Gid: ( 1000/ kingdee)
Access: 2018-06-05 14:49:48.510377700 +0800
Modify: 2018-06-07 17:23:04.547884800 +0800
Change: 2018-06-07 17:23:04.547884800 +0800
 Birth: -

各参数说明如下:

  • File:显示文件名

  • Size:显示文件大小

  • Blocks:文件使用的数据块总数

  • IO Block:IO块大小

  • regular file:文件类型(常规文件)

  • Device:设备编号

  • Inode:Inode 号

  • Links:链接数

  • Access:文件的权限

  • Gid、Uid:文件所有权的 Gid 和 Uid。

注意,这里 Birth 的值为 -,是因为在 Linux 上没有创建时间的概念。但如果文件建立后就没有修改过, 修改时间=建立时间 ;如果文件建立后,状态就没有改动过,那么 状态改动时间=建立时间 ;如果文件建立后,没有被读取过,那么 访问时间=建立时间,因为不好判断文件是否被改过、读过、其状态是否变过,所以判断文件的建立时间基本上能为不可能。

显示文件系统状态信息

$ stat -f sniffer.py
  File: "sniffer.py"
    ID: 100000000 Namelen: 255     Type: UNKNOWN (0x53464846)
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 59417343   Free: 30491021   Available: 30491021
Inodes: Total: 999        Free: 1000000

其中各参数如下:

  • File:文件名

  • Namelen:文件名长度限制

  • Block size:块大小

  • Fundamental block size:基础块大小,用于快速传输

  • Block:块信息,包括总大小,空闲大小以及已用大小

  • Inodes:系统 inode 信息,包括总数和可用

Last updated