stat命令也可以用来查看文件或文件系统的信息,因为它的输出可以使用转义序列定制,所以使用更加灵活。stat命令所显示的是文件的inode信息,是文件系统管理的一个数据结构,包含了描述文件所必要的全部信息,其中包含了文件的大小,类型,存取权限,文件的所有者等。
stat
一般格式:
stat 参数 文件或文件系统
常用参数:
-L 支持显示符号链接
-f 显示文件系统的信息而非文件信息
-t 以简洁的方式输出
-c 转义序列 使用转移序列代替默认的信息输出,每次输出后自动换行
–printf=转义序列 使用转移序列代替默认的信息输出,也会解析反斜杠后的转义序列,例如“\n”,并且每次输出后不会自动换行
以下是一些转义序列:
针对文件的转义序列:
%a 使用八进制输出访问权限
%A 使用rwx的方式输出访问权限
%b 计算已分配块数
%B 以字节为单位输出%b所指的每个块的大小
%C SELinux安全上下文内容
%d 十进制输出设备编号
%D 十六进制输出设备编号
%f 十六进制原始模式
%F 文件类型
%g 文件的用户组ID
%G 文件的用户组名
%h 文件的硬链接数量
%i inode编号
%m 挂载点
%n 文件名
%N 显示字符链接的源文件名
%o IO块大小
%s 以字节为单位输出的总大小
%t 用于字符/块设备文件,十六进制输出的主设备文件类型
%T 用于字符/块设备文件,十六进制输出的次设备文件类型
%u 文件所有人的ID
%U 文件所有人的名
%w 文件创建时间,若未知则显示"-"
%W 从UNIX 元年起以秒计的文件创建时间,若未知则显示"0"
%x 文件最后的访问时间
%X 从UNIX 元年起以秒计的最后访问时间
%y 文件最后修改时间
%Y 从UNIX 元年起以秒计的最后修改时间
%z 文件最后改变时间
%Z 从UNIX 元年起以秒计的最后改变时间
针对文件系统的转义序列:
%a 非管理员用户剩余可用的块数量
%b 文件系统总数据块数量
%c 文件系统总节点数量
%d 文件系统空闲节点数量
%f 文件系统空闲的块数量
%i 十六进制文件系统ID
%l 允许文件名的最大长度
%n 文件名
%s 用于传输的块大小
%S 用于块计数的基本块大小
%t 以十六进制描述文件系统类型
%T 以名字(很好理解的方式)描述文件系统类型,例如xfs、ext4等
一般用法:
查看文件信息
从上到下,从左到右,各个条目的意义:
File 文件名
Size 文件的大小
Blocks 表示已经分配的块的数量
IO Block IO块大小
regular file 文件类型,该文件为常规文件
Device 16进制/10进制设备编号
Inode 文件的inode编号
Links 文件的硬链接数
Access 八进制/rwx方式表示的访问权限
Uid 文件所有人ID/ 文件所有人名
Gid 文件所属组ID/ 文件所属组名
Context SElinux安全上下文内容
Access 访问时间(年-月 -日 时:分:秒.毫秒 时区)
Modify 修改时间(年-月 -日 时:分:秒.毫秒 时区)
Change 改变时间(年-月 -日 时:分:秒.毫秒 时区)
Birth 文件的创建时间,为"-"表示未知
查看文件系统信息
File 文件名
ID 十六进制文件系统ID
Namelen 文件系统允许最大的文件名长度
Type 文件系统类型
Block size 用于传输的块大小
Fundamental block size 基本块大小(用于块计算的)
Blocks 文件系统块统计信息
Total 文件系统总数据块数量
Free 文件系统空余的块数量
Available 文件系统非管理员用户可用的块数量
Inodes 文件系统的Inode信息
Total 文件系统总Inode数量
Free 文件系统空余Inode数量
查看磁盘设备文件信息
划线处表示,该文件是块设备文件,以及主次设备号
自定输出内容及格式(多用于shell脚本)
\n即换行的意思,看看输出结果是否一一对应