答案1
HFS 文件系统支持文件上的几种不同时间戳。常见的 Unix 时间戳有“修改时间”、“更改时间”、“上次访问时间”,还有 HFS 特有的“创建时间”。
要查看文件的标准时间戳,请使用“stat -x FILE”。您也可以使用“ls”的各种选项单独查看它们,但这样更不容易混淆。
现在事情变得很奇怪。我在 MacOS 10.13 (High Sierra) 上进行测试。没有任何选项的“stat”命令应该显示所有时间戳,而且它确实显示了 4 个时间戳,但它显示的第 4 个时间戳似乎是修改时间的重复。没有选项的 GetFileInfo 命令应该打印出创建和修改时间,但在我的计算机上,它清楚地打印了这两个值的修改时间。“ls -Ul”应该列出创建时间,但它再次显示了修改时间。
我怀疑 Finder 中的“添加日期”字段是 HFS inode 创建时间,除非有针对 MacOS 的特定扩展,否则我不认为任何标准 Unix 命令能够看到该字段。Apple 似乎确实在“find”、“ls”和“stat”中添加了钩子以使用创建时间字段,但他们似乎没有对 rsync 这样做。考虑到我的测试结果,即使他们确实这样做了,我也不想依赖他们的更改。
因此 rsync 的答案似乎是“不,你不能这样做”。
我想知道您为什么认为需要以这种方式过滤 rsync - rsync 的工作是查找已更改的文件并复制它们,按添加日期过滤不会给您带来任何好处,因为文件可能会被更改并且不会更新其创建日期。