入门教程-Linux中比ls命令更好的8个stat命令示例

系统 Linux
在本指南中,我们将重点介绍Linux中的8个stat命令用法。这适用于所有Linux发行版。

 在Linux中,似乎总有一种巧妙的方法来完成任务。对于任何任务,总是有多个命令行实用程序以更好的方式执行它。Linux stat命令是一个命令行工具,用于显示关于文件的详细信息。在本指南中,我们将重点介绍Linux中的8个stat命令用法。这适用于所有Linux发行版。

Linux stat命令

我们可以将stat命令看作是ls -l命令的更好版本。虽然-l标志提供了有关文件的更多详细信息,例如文件所有权和权限,但stat命令更深入明了,并提供了有关文件的丰富信息。

Linux stat命令的语法如下所示:

$ stat [选项] 文件名

1、不带参数的Stat命令

stat命令以最简单的形式(不带任何参数)显示默认输出。这包括文件大小和类型、设备类型、inode编号、UID、GID、链接数量和文件的访问/修改日期。

例如,要查看当前主目录下文件的详细信息,执行: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ stat www.linuxmi.com.py 

我们介绍下输出的具体含义:

  •  文件:显示文件名。
  •  大小:文件大小,以字节为单位。
  •  块:分配给文件的块数。
  •  IO块:这是每个块的字节大小。
  •  设备:设备编号,十六进制或十进制格式。
  •  Inode:这是文件的索引节点号。
  •  链接:与文件关联的硬链接数。
  •  访问权限:符号或数字格式的文件权限。
  •  Uid:所有者的用户ID和名称。
  •  Gid:群组ID和所有者名称。
  •  上下文:SeLinux安全上下文
  •  文件类型:显示文件的类型(常规文件,符号链接等)。
  •  访问:显示上次访问文件的时间。
  •  修改:显示上次更改文件内容的时间。
  •  更改:显示文件元数据(例如权限和所有权)上次更改的时间。

2、查看多个文件信息

通过依次指定命令行上的文件,您可以查看关于多个文件的详细报告,如下所示。 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ stat linuxmi.cpp linuxmi.py 

3、显示文件系统状态

可以使用-f选项检查文件所在的文件系统状态,如下所示。这给出了块大小、总内存和可用内存,仅举几个属性。 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ stat -f /home 

4、以简洁的形式显示信息

t选项用于以简洁的格式显示信息,如下所示: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ stat -t linuxmi.cpp 

5、启用符号链接的跟随

通常,如果在符号链接上运行stat命令,它将仅为您提供有关链接的信息,而不会提供链接指向的文件。以/usr/share/zoneinfo/America/Cayman符号链接为例。 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ stat /usr/share/zoneinfo/America/Cayman 

在上面的示例中,符号链接/usr/share/zoneinfo/America/Cayman 指向 -> Panama。符号链接只有6个字节。

要获取有关链接指向的文件的信息,请使用-L选项(也称为取消引用选项)。 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ stat -L /usr/share/zoneinfo/America/Cayman 

现在,这将显示有关文件而不是链接的信息,即使输出表明它是链接。这是因为我们通过stat命令将其作为参数传递。

6、格式排序

从前面的示例中,我们已经看到stat命令在终端上打印出一系列信息。如果需要特定信息,可以使用格式序列来自定义输出,以准确提供所需内容并保留其他详细信息。

用于自定义输出的常用表达式包括–printf 或–format选项

例如,要仅显示文件的索引节点,请使用%i格式序列,如下所示。该\n操作打印新的生产线。 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ stat --printf='%i\n' linuxmi.cpp 

要显示访问权限和uid(用户ID),请使用%a和%u格式序列。 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ stat --printf='%a:%u\n' linuxmi.cpp 

该-format选项打印出一个新行,而不需要额外的操作。 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ stat --format='%a:%F' linuxmi.cpp 

以下是您可以使用的格式序列的完整列表:

  •  %a  以八进制格式显示访问权限。
  •  %A  以易于阅读的格式显示访问权限。
  •  %b  这是分配的块数(请参见%B)。
  •  %B  由%b报告的每个块的字节大小。
  •  %C  显示SELinux安全上下文字符串。
  •  %d  以十进制格式显示设备编号。
  •  %D  十六进制格式的设备号。
  •  %f  以十六进制显示原始模式。
  •  %F  显示文件类型。
  •  %g  打印所有者的组ID。
  •  %G  打印所有者的组名。
  •  %h  显示硬链接数。
  •  %i  打印出索引节点号。
  •  %m  打印安装点。
  •  %n  显示文件的文件名
  •  %N  显示带符号引用的文件名,如果使用符号链接则取消引用
  •  %o  打印最佳I/O传输大小提示。
  •  %s  总大小(以字节为单位)。
  •  %t  主要设备类型(十六进制),用于字符/块设备特殊文件
  •  %T  次要设备类型(十六进制),用于字符/块设备特殊文件
  •  %u  显示所有者的用户ID。
  •  %U  打印所有者的用户名。
  •  %w  显示文件的产生时间,易于阅读;–如果未知。
  •  %W  打印文件诞生的时间,距离纪元后的秒数;如果未知,则为0。
  •  %x  上次访问的时间,易于我们理解的格式。
  •  %X  上次访问的时间,距离纪元以来的秒数。
  •  %y  显示上次修改的最后时间,便于阅读。
  •  %Y  打印上次修改的时间,距离纪元以来的秒数。
  •  %z  这是上次更改的时间,人类可以理解。
  •  %Z  最后一次更改的时间,距离纪元以来的秒数。

7、获得有关stat命令的帮助

有关更多命令选项,请使用–help选项和stat命令,如图所示。 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ stat --help 

您还可以访问stat命令的手册页,运行 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ man stat 

8、检查stat版本

最后检查stat命令的版本,运行命令: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ stat --version 

这就是我们在本指南中为您准备的。如您所见,stat命令超越了ls命令为您提供的功能,非常适合收集有关文件或文件系统的详细信息。 

 

责任编辑:庞桂玉 来源: Linux公社
相关推荐

2015-03-25 10:36:57

lsLinux

2009-09-28 11:21:17

Linux教程ls命令Linux

2023-10-09 07:33:50

Linuxls 命令

2014-12-31 11:25:33

Docker运行PythonDocker命令

2013-05-23 15:10:34

Netcat

2017-12-27 10:20:01

Linux ls命令实用范例

2020-09-13 09:22:51

Linuxls命令

2021-07-11 12:06:07

Linux Date命令

2021-09-14 10:55:16

LinuxDate命令

2019-07-29 19:30:54

Linux命令ls命令

2022-01-17 10:05:33

LinuxWatch命令

2014-12-31 11:11:52

DockerDocker基本命令

2013-10-08 15:51:03

Linux find命

2020-09-29 07:18:24

Linuxtee命令

2013-10-08 16:24:34

Linux find命

2022-07-21 11:58:12

Docker

2020-09-22 07:29:14

Linux stat

2020-05-20 13:45:52

Linuxtouch命令

2023-01-17 19:30:52

Linux命令行目录

2022-08-29 08:33:22

SocatLinux命令
点赞
收藏

51CTO技术栈公众号