stat命令

Posted 哭泣的馒头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stat命令相关的知识,希望对你有一定的参考价值。

一、简介

stat 是查看文件的属性
stat指令:文件/文件系统的详细信息显示

stat test1.sh
有三个重要属性可以看到
atime:(access time)显示的是文件中的数据最后被访问的时间,比如系统的进程直接使用或通过一些命令和脚本间接使用。
(执行一些可执行文件或脚本)
mtime: (modify time)显示的是文件内容被修改的最后时间,比如用vi编辑时就会被改变。(也就是Block的内容)
ctime: (change time)显示的是文件的权限、拥有者、所属的组、链接数发生改变时的时间。当然当内容改变时也会随之改变
(即inode内容发生改变和Block内容发生改变时)

二、使用

1、常用参数

stat命令主要用于显示文件或文件系统的详细信息,该命令的语法格式如下:
-f 不显示文件本身的信息,显示文件所在文件系统的信息
-Z 打印SElinux安全上下文信息
-L 显示符号链接 跟踪链接
-c 自定义输出格式,结尾有换行 这个也是最常用的啊
-t 简洁模式,只显示摘要信息
-f 是显示文件系统 (显示文件系统状态而不是文件状态)

2、-c显示文件状态

stat -c 格式代码  filename

%A 用文件权限代码表示,如-rw-r--r--
%a 用八进制数字表示文件权限
%b 占用的区块数量
%B 用%b计算区块数量时,每一区块的大小,预设是512bytes
%D 用16进制表示设备编号
%d 用10进制表示设备编号
%F 文件形态,即文件类型
%f raw mode以16进制表示
%G 文件拥有者的组名
%g 文件拥有着的群组编号
%h 硬链接的数量
%i inode编号
%m 获取文件所在磁盘挂载点
%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 属性改动时间

获取文件大小
stat -c %s test1.sh
获取文件最后修改时间
stat -c %y test1.sh

3、-f查看文件所在文件系统状态信息

stat -f -c 格式代码  filename

%a 一般使用者可自由运行的区块数
%b 全部的区块数
%c 全部的文件节点数
%d 可取用的文件节点数
%f 可取用的区块数
%i 使用16进制数表示的文件系统代码
%l 最大的文件名长度
%n 文件名
%s 最佳传输的文件大小
%T 用易于了解的方式表示文件系统的格式
%t 用16进制数表示文件系统的格式

获取最大的文件名长度
stat -f -c %l /dev/sda1

以上是关于stat命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux命令之stat命令

为啥 stat() 没有显示正确的 mtime 值?

20175316 stat命令的实现-mysate

stat命令的实现-mysate

stat命令的实现-mysate(必做)

stat命令的实现-mysate