bash 可以读取文件/目录的“添加日期”吗?

bash 可以读取文件/目录的“添加日期”吗?

在像您这样的程序中,stat您可以看到访问、修改和更改,但在 macOS 上的 Finder 中,有一个“添加日期”字段。我可以获取终端中显示的文件或目录的“添加日期”,例如stat可以显示修改日期吗?

答案1

一些候选者包括以下内容。文件时间在元数据中公开,并且mdls是“埃塔d阿塔st"。当与该-raw选项一起使用时,输出mdls包含用 NUL 字符分隔的字段。例如,如下所示。

# The creation date which should not change.
mdls -raw -name kMDItemFSCreationDate $filename

stat命令的行为有所不同。使用命令 的两个 shell 的四个版本的结果stat -f $filename如下。

  1. /usr/local/bin/zsh(5.7.1 通过 Homebrew)生成stat: missing file descriptor.
  2. /usr/local/bin/bash(5.0.2(1) 通过 Homebrew)生成testing.txt.
  3. /bin/zsh(5.3 包含在 macOS 中)生成stat: missing file descriptor.
  4. /bin/bash(3.2.57(1) 包含在 macOS 中会生成testing.txt.

但是,通过使用 的完整路径stat,该命令在两个 shell 的每个版本中都按预期完成。生成所有找到的时间的示例stat如下。

/usr/bin/stat -f "Access (atime): %Sa%nModify (mtime): %Sm%nChange (ctime): %Sc%nBirth  (Btime): %SB" testing.txt

该命令生成输出,例如上述命令的以下结果。

Access (atime): Feb 21 10:46:41 2019
Modify (mtime): Feb 21 10:46:21 2019
Change (ctime): Feb 21 10:46:21 2019
Birth  (Btime): Feb 21 10:22:17 2019

这是一个有趣的问题,我希望对造成这种差异的原因有更多的了解。

相关内容