从源文件中批量复制文件创建时间戳

从源文件中批量复制文件创建时间戳

TL:DR:我有一台 Synology NAS,里面有大量源文件,还有一台(目标)NAS,里面有这些文件的副本(加上几天的工作)。我想将源文件的创建时间戳复制到目标文件。

很长的故事:

最近,我的一台 Synology NAS 硬盘出现故障。根据备份,我决定更新我们的备份策略,其中包括一台新 NAS 和新硬盘。我将备份 NAS 设置为使用 Synology 的文件夹同步功能在新 NAS 上创建我的重复文件。除了一件事外,它运行良好。

新 NAS 上的文件从源文件中获取修改时间戳,但创建时间戳设置为我备份每个文件的日期。我的一些同事在工作中使用文件创建时间戳,所以我正在尝试找回正确的时间戳。

过去,我曾通过编写一个 PHP 页面来更新修改时间戳,该页面只是在两个文件树中查找匹配的文件名,并在过程中覆盖修改时间戳,但我不知道如何使用创建时间戳来执行此操作,甚至不知道是否可行。此外,目标文件上的修改时间戳都是正确的。驱动器上有数万个文件,因此不可能逐个更新。我有什么选择?可能吗?

编辑:既然有人问了,我的 NAS 报告文件系统为“Btrfs”。它有 4 个驱动器,设置为 RAID 10。

答案1

您没有指定正在使用的操作系统或文件系统。这里有一些有用的信息:https://apple.stackexchange.com/questions/199536/how-to-keep-original-date-created-when-copying-via-terminal

这是苹果特有的问题,但答案和评论提供了一些你可能会觉得有用的一般信息。特别是:“如果你想将文件复制到另一个文件系统,那么你需要用补丁 fileflags、crtimes 等编译 rsync。”

因此,假设您正在使用支持 rsync 的系统(例如 Linux),那么这可能是您的答案。

祝你好运。

邓肯

相关内容