Linux下stat命令详解

188 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


Linux下的stat命令用于查看文件属性、inode等信息

查看文件inode信息

  • File:显示文件名
  • Size:显示文件大小
  • Blocks:文件使用的数据块总数
  • IO Block:IO块大小
  • regular file:文件类型(常规文件) ,如果是其他文件类型会显示出对应的文件类型
  • Device:设备编号
  • Inode:Inode号
  • Links:链接数
  • Access:文件的权限
  • Gid、Uid:文件所有权的Gid和Uid。
  1. Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间
  2. Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。
  3. Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。

常见参数

-L, --dereference follow links 如果是链接文件,则获取原文件信息 -Z, --context print the security context information if available 打印SElinux安全上下文信息 -f, --file-system display file system status instead of file status 显示文件所在的文件系统的状态 -c --format=FORMAT use the specified FORMAT instead of the default; output a newline after each use of FORMAT 自定义输出格式,结尾有换行 --printf=FORMAT like --format, but interpret backslash escapes, and do not output a mandatory trailing newline. If you want a newline, include \n in FORMAT. 自定义输出格式,结尾无换行符,需手动添加 -t, --terse print the information in terse form 以简洁的形式打印输出信息(在没有改变输出格式的情况下)

格式代码


%A 用文件权限代码表示,如-rw-r--r--
 
%a 用八进制数字表示文件权限
 
%b 占用的区块数量
 
%B 用%b计算区块数量时,每一区块的大小,预设是512bytes
 
%D 用16进制表示设备编号
 
%d 用10进制表示设备编号
 
%F 文件形态,即文件类型
 
%f raw mode以16进制表示
 
%G 文件拥有者的组名
 
%g 文件拥有着的群组编号
 
%h 硬链接的数量
 
%i inode编号
 
%N 将符号链接的文件明和其指向的文件的文件名,用引号包含,'1.sh'->'h.sh'
 
%n 文件名
 
%o IO区块的大小,预设是4096bytes
 
%s 文件大小
 
%T 16进制表示Minor次要设备代码
 
%t 16进制表示Major主要设备代码
 
%U 文件拥有者的使用者名称
 
%u 文件拥有者的使用者编号
 
%X 取用时间,用1900.1.1至取用时间的秒数
 
%x 取用时间
 
%Y 修改时间,类似取用时间
 
%y 修改时间
 
%Z 属性改动时间
 
%z 属性改动时间

获取文件大小
[root@localhost ~]# stat  -c %s file