概述
`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`)的行为可能有所不同。