我定期使用 Robocopy 的镜像功能备份我的大部分文件。
过去几天我没有注意到任何异常,因为我最常备份到另一个 SSD。但令我惊恐的是,今天当我决定备份到一个相对较慢的 USB 闪存驱动器时,它开始复制所有内容!
我突然意识到这是因为 USB 闪存驱动器上的每个文件都比我的 SSD 上的所有文件早 1 小时。
我上次备份到这个 USB 闪存驱动器大约是在一周前,因此上周一定发生了一些事情,导致我的 SSD 上每个文件的修改时间戳都比以前晚了一个小时。
这可能是什么原因造成的?我不记得在 Windows 中设置过日期和时间,但是……
为什么它要更改时间戳?我可能可以理解 Windows 对时间戳的不同解释,但它肯定也应该将 USB 闪存驱动器上的文件解释为具有相同的时间戳。所以看起来每个文件都必须单独被触碰过?
奇怪的是,当我尝试使用命令行而不是 Windows 资源管理器WMIC DATAFILE [...] get LastModified
查看每个文件时,它并没有显示文件间隔 1 小时,而是只有 2 秒!但上周备份的文件仍然是时间戳值较低的文件。
答案1
如果磁盘格式化为 NTFS,而 USB 不是,则两秒的差异是正常的。我猜 USB 驱动器格式化为 FAT 或 exFAT 格式。
微软文章 文件时间 解释该问题:
NTFS 文件系统以 UTC 格式存储时间值,因此它们不受时区或夏令时变化的影响。FAT 文件系统根据计算机的本地时间存储时间值。例如,在华盛顿太平洋标准时间下午 3:00 保存的文件在 NTFS 卷上显示为纽约东部标准时间下午 6:00,但在 FAT 卷上显示为纽约东部标准时间下午 3:00。
这就是为什么许多备份程序要弥补这个问题。
Robocopy 例如有这个参数:
/dst Compensates for one-hour DST time differences.
为了获得最佳效果,你应该将 USB 格式化为 NTFS,这样两者的时间计算就相同,并且可以使用 协调世界时 在 Explorer 中显示时转换为本地时间的时间戳。