在像您这样的程序中,stat您可以看到访问、修改和更改,但在 macOS 上的 Finder 中,有一个“添加日期”字段。我可以获取终端中显示的文件或目录的“添加日期”,例如stat可以显示修改日期吗?
一些候选者包括以下内容。文件时间在元数据中公开,并且是mdls“元数据列表” 。与该选项一起使用时,输出包含用 NUL 字符分隔的字段。例如如下。-rawmdls
# The creation date which should not change.
mdls -raw -name kMDItemFSCreationDate $filename
Run Code Online (Sandbox Code Playgroud)
该stat命令的行为有所不同。使用命令 的两个 shell 的四个版本的结果stat -f $filename如下。
/usr/local/bin/zsh(5.7.1 通过 Homebrew)生成stat: missing file descriptor./usr/local/bin/bash(5.0.2(1) 通过 Homebrew)生成testing.txt./bin/zsh(5.3 包含在 macOS 中)生成stat: missing file descriptor./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
Run Code Online (Sandbox Code Playgroud)
该命令生成输出,例如上述命令的以下结果。
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
Run Code Online (Sandbox Code Playgroud)
这是一个有趣的问题,我希望对造成这种差异的原因有更多的了解。