我需要将文件从一个 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 可移动驱动器的情况下时间戳会发生变化?
答案1
根据维基百科,胖的分辨率为“最后修改时间为 2 秒”, 尽管“ext4提供以纳秒为单位的时间戳”。因此,可以肯定地说 FAT 正在失去额外的秒精度,尽管我不确定为什么它只在将文件移动到另一个文件系统时“生效”。这可能是舍入错误。Raymond Chen 的这篇文章可能有一些线索:为什么当我将文件复制到 USB 拇指驱动器时,文件的时间戳会增加最多 2 秒?
顺便说一句,不信任 FAT 上的时间戳的另一个原因是:它们不支持时区。