stat

显示文件或文件系统的状态


语法格式

stat [-fLtZ] [-c fmt] [--printf=fmt] files
stat [--help] [--version]

命令简介

stat命令用于显示指定文件或指定所在文件系统的状态信息。其中,files是一个或一组文件,包括目录、符号链接文件、特殊文件、管道文件或套接字等。

如果未加任何选项,stat将会显示指定文件的所有信息。如果仅指定了“-f”选项,stat将会显示指定文件所在文件系统的所有信息。如果指定的文件是一个符号链接文件,利用“-L”选项,stat也会显示符号链接文件引用文件的状态信息。

命令选项

-c fmt, --format=fmt  使用指定的格式而非默认的格式显示文件或文件系统的状态信息。注意,指定的格式之后会自动附加一个换行符。因此,当使用指定的格式处理多个文件参数时,将会逐行显示每个文件的状态信息。参见输出格式定义。

-f, --file-system  显示文件参数所在文件系统而非文件本身的状态信息。

-L, --dereference  显示符号链接文件参数引用文件的信息。如果未加此选项,直接显示符号链接文件本身的信息。

--printf=fmt  类似于“-c”选项,但不会在行尾输出换行符。“--printf”选项能够解释转义字符,因此,是否需要换行,可由用户自己控制,例如,如果想要输出换行符,可在指定的格式中附加一个转义字符“\n”。参见输出格式定义。

-t, --terse  以简洁的形式输出相关信息,可供其他程序解析处理。

-Z, --context  显示文件或文件系统的SELinux安全属性。

--help  显示命令的用法、概述与选项说明等帮助信息,然后退出。

--version  显示命令的版本、版权与作者等信息,然后退出。

输出格式定义

在显示文件的状态信息时,可以使用“--format”或“--printf”选项,以及下列格式字符或其组合定义显示的形式与内容:

%a  以八进制数据形式表示的文件访问权限,如644。

%A  以ls命令的输出形式表示的文件访问权限,如“-rw-r--r--”。

%b  分配给文件的数据块数量(参见%B)。

%B  分配给文件的每个数据块的字节数,如512。

%C  文件的SELinux安全属性。

%d  以十进制数据形式表示的设备号。

%D  以十六进制数据形式表示的设备号。

%f  以十六进制数据显示文件的模式字段,其中第一位数字表示文件的类型,如8表示普通文件,4表示目录,以及a表示符号链接文件等。

%F  以描述性的文字显示文件的类型,如regular file、directory或symlink等。

%g  文件属主的用户组ID。

%G  文件属主的用户组名。

%h  文件的硬链接计数。

%i  文件的信息节点号。

%n  文件的名字。

%N  符号链接文件引用的实际文件。

%o  文件I/O时采用的数据块的大小(单位字节)。

%s  文件大小的字节数。

%t  以十六进制数据表示的主设备号。

%T  以十六进制数据表示的次设备号。

%u  文件属主的用户ID。

%U  文件属主的用户名。

%x  最近一次访问文件的时间。

%X  自UNIX纪元(1970-01-01 00:00:00 UTC)至最近一次访问文件时间的累计秒数。

%y  最近一次修改文件的时间。

%Y  自UNIX纪元(1970-01-01 00:00:00 UTC)至最近一次修改文件时间的累计秒数。

%z  最近一次文件信息节点状态发生变动的时间。

%Z  自UNIX纪元(1970-01-01 00:00:00 UTC)至最近一次文件信息节点状态变化时间的累计秒数。

在显示文件系统的状态信息时,可以使用“-f”与“--format”选项或“-f”与“--printf”选项,以及下列转义字符或其组合定义显示的形式与内容:

%a  普通用户可用的空闲数据块数量。

%b  文件系统的数据块总和(单位4KB)。

%c  文件系统的信息节点总和。

%d  文件系统空闲信息节点的数量。

%f  文件系统空闲数据块的数量。

%i  以十六进制数据形式表示的文件系统ID。

%l  文件路径名的最大长度限制,如255。

%n  文件系统的名字(安装点)。

%s  最适合于文件系统I/O的逻辑数据块大小(单位字节)。

%S  作为文件系统分配单位或计数单位的逻辑数据块大小。

%t  以十六进制数据形式表示的文件系统类型,如ef53。

%T  以文字形式显示文件系统的类型,如ext2/ext3。

应用实例

1. 显示根目录的汇总信息。

$ stat /
  File: ‘/'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 2           Links: 34
Access: (0555/dr-xr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-03-20 08:45:42.304333959 +0800
Modify: 2012-03-23 04:28:25.103062410 +0800
Change: 2012-03-23 04:28:25.103062410 +0800
$

2. 显示文件的最近访问时间、修改时间与信息节点变动时间。

$ stat --printf="atime - %x\nmtime - %y\nctime - %z\n" /etc
atime - 2012-03-22 04:22:26.514112483 +0800
mtime - 2012-03-23 06:44:47.465077456 +0800
ctime - 2012-03-23 06:44:47.465077456 +0800
$

3. 显示/boot文件系统的汇总信息。

$ stat -f /boot
  File: "/boot"
    ID: dc714ce1a9032bc Namelen: 255     Type: ext2/ext3
Block size: 1024       Fundamental block size: 1024
Blocks: Total: 495844     Free: 466803     Available: 441203
Inodes: Total: 128016     Free: 127978
$

4. 以简洁的形式输出/boot文件系统的汇总信息。

$ stat -f -t /boot
/boot dc714ce1a9032bc 255 ef53 1024 1024 495844 466803 441203 128016 127978
$

5. 显示“/”文件系统的数据块总和、空闲数据块数量、信息节点总和与空闲信息节点数量。

$ stat -f --printf="blocks - %b\nbfrees - %f\ninodes - %c\nifrees - %d\n" /
blocks - 5993067
bfrees - 4143273
inodes - 1523712
ifrees - 1412003
$

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z