> 文件与目录管理 > stat

stat: 以自定义格式输出文件信息

`stat` 命令用于显示文件或文件系统的详细状态信息。特别是,使用 `-c`(或 `--format`)选项时,您可以按照用户指定的格式提取文件大小、权限、所有者、时间信息等,这在编写脚本或报告时非常有用。

概述

`stat` 命令显示文件的 inode 信息(元数据)。`-c` 选项允许以用户定义的格式输出此信息,使其适合提取特定属性或与其他命令组合使用。

主要特点

  • 查询文件和文件系统的详细元数据
  • 支持通过 `-c` 选项进行自定义输出格式
  • 对脚本和自动化任务很有用
  • 访问各种文件属性(大小、权限、所有者、时间等)

主要选项

与 `stat` 命令的核心 `-c` 选项一起使用的主要格式指定符。

格式指定选项

生成的命令:

请尝试组合命令。

描述:

`stat` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

使用 `stat -c` 选项以各种格式输出文件信息的示例。

输出文件名和大小

stat -c '%n %s' my_file.txt

以空格分隔输出指定文件的名称和大小。

输出文件类型和权限

stat -c '%F %A' my_script.sh

输出文件的类型和人类可读的权限。

输出所有者、组和最后修改时间

stat -c 'Owner: %U, Group: %G, Modified: %y' my_document.pdf

以特定字符串一起输出文件的所有者名称、组名称和最后修改时间。

检查符号链接的目标

stat -c '%N' my_symlink

对于符号链接,输出包含链接的原始文件路径。

输出当前目录中所有文件/目录的名称和大小

stat -c '%n %s' *

使用通配符输出当前目录中所有项目的名称和大小。

提示与注意事项

关于更有效地使用 `stat -c` 的提示和注意事项。

使用引号

如果 FORMAT 字符串包含空格或特殊字符,您需要用单引号(')或双引号(")将其括起来,以防止 shell 将其解释为单独的参数。

  • 单引号('):在防止变量扩展并按原样传递字符串时很有用。
  • 双引号("):在允许变量扩展的同时将字符串括起来时使用。

时间格式

时间相关指定符(%x、%y、%z)默认以人类可读的格式输出。要获取秒级时间戳,请使用 `%X`、`%Y`、`%Z`。

与 find 命令组合使用

find . -maxdepth 1 -type f -exec stat -c '%n %s' {} \;

您可以将 `find` 命令的 `-exec` 选项与 `stat -c` 结合使用,以对满足特定条件的文件执行 `stat -c`。

操作系统差异

某些格式指定符可能因操作系统或 `stat` 版本而异或不受支持。例如,`%w`(创建时间)指定符通常在 Linux 上不受支持,仅在 macOS/BSD 上可用。

  • Linux: 通常使用 `coreutils` 包中包含的 `stat` 版本。
  • macOS/BSD: 某些格式指定符(例如 `%w`)的行为可能有所不同。

相同类别命令