Мне нужно было скопировать файл из одной системы Ubuntu в другую систему Ubuntu.
Я проверил «модифицированную метку времени» исходного файла, и это было 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, даже если оно менее переносимо, чем устройство MSDOS MBR FAT32, в «смешанной» среде компьютеров Windows и Ubuntu.
Почему метка времени изменилась в случае съемного диска MSDOS MBR FAT32?
Согласно Википедии, FAT имеет разрешение «2 секунды для последнего измененного времени» , тогда как « ext4 предоставляет временные метки, измеренные в наносекундах «. Таким образом, можно с уверенностью сказать, что FAT теряет лишнюю секунду точности, хотя я не уверен, почему он «вступает в силу» только при перемещении файла в другую файловую систему. Это может быть ошибка округления. Этот пост Рэймонда Чена может иметь некоторые подсказки: Почему метка времени файла увеличивается на 2 секунды, когда я копирую его на флэш-накопитель USB?
Кстати, другая причина не доверять меткам времени в FAT: они не поддерживают часовые пояса .