Linux 常用命令 - stat 【显示文件状态信息】

2024-06-12 11:36

本文主要是介绍Linux 常用命令 - stat 【显示文件状态信息】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

stat 命令源于英文单词 “statistics”,意为统计,主要用于显示文件或文件系统的状态信息。它能提供比 ls 命令更详细的信息,如文件的大小、inode号、权限、所有者、组、最后访问时间、最后修改时间等。stat 命令通过读取文件系统中的元数据来获取这些信息,这对于系统管理和脚本编写非常有用。

使用方式

stat [选项] 文件...

常用选项

  • -L, --dereference:跟随符号链接,显示符号链接所指向的目标文件的状态信息,而不是符号链接本身的信息。
  • -f, --file-system:显示文件系统的状态信息,而不是文件或目录的信息。
  • -c --format=FORMAT:指定输出格式,允许用户按照特定的方式来格式化输出信息。
  • –printf=FORMAT:与 --format 类似,其提供更复杂与高级的格式控制。包括处理字符串中的反斜杠转义序列如换行符 \n,并且其不会在输出的末尾自动添加换行符。
  • -t, --terse:以简洁的方式输出信息。
  • –help:显示帮助信息。
  • –verison:显示版本信息。

文件支持的 FORMAT

  • %a:以八进制显示文件的访问权限。
  • %A:以人类可读的形式显示文件的访问权限。
  • %b:显示为文件分配的块的数量。可以与 %B 一起查看每个块的字节大小。
  • %B:显示 %b 报告的每个块的大小(字节)。
  • %C:显示 SELinux 安全上下文字符串。
  • %d:以十进制显示设备号。
  • %D:以十六进制显示设备号。
  • %f:以十六进制显示文件的原始模式。
  • %F:显示文件类型。
  • %g:显示文件所有者的组ID。
  • %G:显示文件所有者的组名。
  • %h:显示硬链接数量。
  • %i:显示 inode 号。
  • %m:显示挂载点。
  • %n:显示文件名。
  • %N:显示引用的文件名,如果是符号链接则解引用。
  • %o:显示最佳 I/O 传输大小。
  • %s:显示总大小(字节)。
  • %t:对于字符/块设备以十六进制显示主要设备类型。
  • %T:对于字符/块设备以十六进制显示次要设备类型。
  • %u:显示文件所有者的用户ID。
  • %U:显示文件所有者的用户名。
  • %w:以人类可读形式显示文件创建的时间。
  • %W:以自 Epoch 以来(纪元时间 1970 年 1 月 1 日)的秒数显示文件创建时间
  • %x:显示最后访问时间(人类可读)。
  • %X:显示最后访问时间(自 Epoch 以来的秒数)。
  • %y:显示最后修改时间(人类可读)。
  • %Y:显示最后修改时间(自 Epoch 以来的秒数)
  • %z:显示最后状态更改的时间(人类可读)。
  • %Z:显示最后状态更改的时间(自 Epoch 以来的秒数)。

文件系统支持的 FORMAT

  • %a:显示非超级用户可用的空闲块数。
  • %b:显示文件系统中的总数据块数。
  • %c:显示文件系统中的总文件节点数。
  • %d:显示文件系统中的空闲文件节点数。
  • %f:显示文件系统中的空闲块数。
  • %i:以十六进制显示文件系统ID。
  • %l(L的小写):显示文件名的最大长度限制。
  • %n:显示文件系统的名称。
  • %s:显示块大小(以便于更快的数据传输)。
  • %S:显示基本块大小(用于块计数)。
  • %t:以十六进制显示文件系统类型。
  • %T:以人类可读形式显示文件系统类型。

参考示例

1. 显示文件状态

stat 文件名

直接使用 stat + 文件名可以显示指定文件的所有可用状态信息,包括大小、块数、inode 编号等。

jay@jaylinuxlenovo:~/test$ stat test.cFile: test.cSize: 396             Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 3407893     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/     jay)   Gid: ( 1000/     jay)
Access: 2024-03-08 14:51:08.980449314 +0800
Modify: 2024-03-08 14:51:08.916453851 +0800
Change: 2024-03-08 14:51:08.916453851 +0800Birth: -

2. 使用自定义格式显示信息

stat -c '%n: 大小是 %s 字节,权限是 %a' 文件名

使用 -c 选项可以指定输出的格式,类似 printf 的格式化输出:

jay@jaylinuxlenovo:~/test$ stat -c '%n: 大小是 %s 字节,权限是 %a' test.c
test.c: 大小是 396 字节,权限是 664

3. 查看文件系统状态

stat -f 文件系统或挂载点

使用 -f 选项可以显示指定文件系统或挂载点的状态信息,如可用空间,总空间等。

jay@jaylinuxlenovo:~/test$ stat -f .File: "."ID: b035d513165c67f0 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 57022059   Free: 45152025   Available: 42237261
Inodes: Total: 14557184   Free: 13627524

注意事项

  • 使用 -c 或 --format 选项自定义输出格式时,需要熟悉可用的格式序列。
  • 当使用了 --terse 选项,则等同于指定了以下格式的序列: %n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %W %o %C。
  • 当使用了 --terse --file-system 选项时,等同于指定了以下格式的序列:%n %i %l %t %s %S %b %f %a %c %d。
  • 当处理符号链接文件时,如果需要查看链接指向的文件信息,不要忘记使用 -L 选项。
  • 在脚本中使用 stat 时,考虑输出格式的兼容性,特别是在不同系统间迁移脚本时。

这篇关于Linux 常用命令 - stat 【显示文件状态信息】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1054102

相关文章

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

Linux CPU飙升排查五步法解读

《LinuxCPU飙升排查五步法解读》:本文主要介绍LinuxCPU飙升排查五步法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录排查思路-五步法1. top命令定位应用进程pid2.php top-Hp[pid]定位应用进程对应的线程tid3. printf"%

Linux下安装Anaconda3全过程

《Linux下安装Anaconda3全过程》:本文主要介绍Linux下安装Anaconda3全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录简介环境下载安装一、找到下载好的文件名为Anaconda3-2018.12-linux-x86_64的安装包二、或者通

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

Linux查看系统盘和SSD盘的容量、型号及挂载信息的方法

《Linux查看系统盘和SSD盘的容量、型号及挂载信息的方法》在Linux系统中,管理磁盘设备和分区是日常运维工作的重要部分,而lsblk命令是一个强大的工具,它用于列出系统中的块设备(blockde... 目录1. 查看所有磁盘的物理信息方法 1:使用 lsblk(推荐)方法 2:使用 fdisk -l(

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

linux lvm快照的正确mount挂载实现方式

《linuxlvm快照的正确mount挂载实现方式》:本文主要介绍linuxlvm快照的正确mount挂载实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux lvm快照的正确mount挂载1. 检查快照是否正确创建www.chinasem.cn2.

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结