生活哲学

如何在 Linux 上使用 stat 命令

Linux stat 命令比 ls 命令显示更多细节。下面的文章将向您展示如何在 Linux 中使用 stat 命令。

ls 一样,stat 命令有很多选项。这使它成为使用别名的绝佳候选者。这使得使用起来更加方便,您无需记住一组复杂的命令行选项。

了解 Linux 上的 stat 命令

  1. stat 命令告诉我什么?
  2. 对多个文件使用 stat
  3. 符号链接
  4. 报告简洁
  5. 自定义输出格式

stat 命令告诉我什么?

看看下面的stat命令:

 stat ana.h 

Linux上如何使用stat命令的图1

我们掌握的信息是:

  1. 文件:文件的名称。
  2. 大小:文件大小以字节为单位。
  3. 块数:存储在硬盘驱动器上所需的文件系统块数。
  4. IO Block:文件系统块的大小。
  5. 文件类型:元数据描述的对象类型
  6. 设备:设备号为十六进制和十进制。
  7. inode: inode 数量。这是这个 inode 的 ID 号。
  8. 链接:此图显示了指向该文件的硬链接数。
  9. 访问:文件权限以传统的读、写和执行格式显示。
  10. Uid:所有者的用户 ID 和帐户名。
  11. Gid:组 ID 和所有者的帐户名。
  12. 访问:标记访问时间。
  13. 修改:标记修改时间。这是文件内容最后一次修改的时间。
  14. 变化:标记变化的时间。这是文件的属性或内容最后一次修改的时间。
  15. 出生:设置为显示文件的原始创建日期,但在 Linux 中不这样做。

对多个文件使用 stat

要让 stat 一次报告多个文件,请将文件名传递给命令行上的 stat

 stat ana.h ana.o 

要对一组文件使用 stat,请使用适当的模式。问号 '?' 表示任意单个字符,星号 '*' 表示任意字符串。

如何在Linux上使用stat命令的图2

使用 stat 报告文件系统

stat 命令可以报告文件系统的状态,以及文件的状态。 -f(文件系统)选项要求 stat 报告文件所在的文件系统。请注意,您还可以将 '/' 之类的目录移动到 stat 而不是文件名。

 stat-f ana.c 

stat 命令告诉我们:

  1. 文件:文件的名称。
  2. ID: 十六进制的文件系统 ID。
  3. Namelen:文件名允许的最大长度。
  4. 类型:文件系统类型。
  5. 块大小:为获得最佳数据传输率而需要读取的数据量。
  6. 基本块大小:每个文件系统块的大小。
  7. 块:
    1. Total:文件系统中所有块的总数。
    2. Free:文件系统中的空闲块数。
    3. 可用:普通用户(非 root)可用的空闲块数。
  8. 索引节点:
    1. Total:文件系统中的 inode 总数。
    2. 空闲:文件系统中空 inode 的数量。

符号链接

如果你您在实际上是符号链接的文件上使用 stat,它将报告该链接。如果您希望 stat 报告链接指向的文件,请使用 -L(取消引用)选项。文件 code.c 是 ana.c 的符号链接。当没有-L 选项时考虑一下:

 stat code.c 

文件名显示code.c指向(->)ana.c.文件大小只有11字节。没有可用于存储此链接的块。文件类型被列为符号链接。

再次运行命令并添加-L选项:

 stat-L code.c 

文件的详细显示结果用符号链接表示。但请注意,文件名仍以 code.c 形式提供。这是链接的名称,而不是目标文件。

报告简洁

-t(简洁)选项使统计信息提供简明摘要:

 stat-t ana.c 

没有给出任何线索。要理解它的含义,在记住字段序列之前,您需要将此输出与完整输出交叉引用。

自定义输出格式

stat 获取不同数据集的更好方法是使用自定义格式。有一长串称为格式字符串的标记。这些中的每一个都代表一个数据元素。选择要在输出中包含的内容并创建格式字符串。当您调用 stat 并将格式字符串传递给它时,输出将只包含您请求的数据组件。

接受格式字符串有两种选择--format--printf.它们的区别是--printf 解释 C 类型的转义序列,它不会自动在输出中添加换行符。

让我们创建一个格式字符串并将其转换为 stat 。使用的格式顺序是 %n 表示文件名,%s 表示文件大小,%F 表示文件类型。在字符串末尾添加一个转义字符串,以确保每个文件都在新行上处理:

 "文件 %n 是 %s 个字节,并且是一个 %Fn" 

该示例将使用 --printf 选项 将其转换为 stat

 stat--printf="File %n is %s bytes, and is a %Fn" code.c ana/ana.? 

每个文件的报告都列在新行上。

自定义格式允许您访问比标准 stat 输出中包含的更多的数据元素。

如您所见,提取您感兴趣的特定数据元素的空间很大。

相关资讯

评论

回复