我需要将文件从一个 Ubuntu 系统复制到另一个 Ubuntu 系统。
我检查了原始文件的“修改时间戳”,它是 4 月 21 日 15:27:31。我复制并粘贴到可移动闪存驱动器。
假设可移动闪存驱动器具有以下属性:GPT EXT4。该文件的时间戳是可移动驱动器上的 15:27:31。这个可移动闪存驱动器在 Ubuntu 上使用gparted
. 我剪切并粘贴到目标系统,目标系统上的时间戳仍然是 15:27:31。
假设可移动闪存驱动器具有以下属性:MSDOS MBR FAT32。这可能是在 Windows 10 上格式化的,这些属性来自我gparted
在 Ubuntu 上可能显示的内容的手写标签。可移动驱动器上的文件的时间戳为 15:27:31。该文件从可移动驱动器剪切并粘贴到目标系统。目标系统上的时间戳现在是 15:27:30。
显然,解决方案是使用 GPT EXT4 设备,即使它在 Windows 和 Ubuntu 机器的“混合”环境中的便携性不如 MSDOS MBR FAT32 设备。
为什么在 MSDOS MBR FAT32 可移动驱动器的情况下时间戳会发生变化?
根据维基百科,FAT的分辨率为“最后修改时间为 2 秒”,而“ ext4提供以纳秒为单位的时间戳”。因此,可以肯定地说 FAT 正在失去额外的精度,尽管我不确定为什么它只会在将文件移动到另一个文件系统时“生效”。这可能是一个舍入错误。Raymond Chen 的这篇文章可能有些线索:为什么当我将文件复制到 U 盘时,它的时间戳最多会增加 2 秒?
顺便说一句,另一个不信任 FAT 时间戳的原因:它们不支持时区。