У меня проблема с отметками времени файлов, скопированных с моего ПК или ноутбука на USB-накопители: время последнего изменения исходного файла и времени скопированного файла различаются. Поэтому синхронизация файлов между моим ПК и USB-накопителем довольно громоздка.
Пошаговое описание
Я копирую произвольный файл со своего ПК / ноутбука на USB-накопитель с помощью графического интерфейса или с помощью команды
cp -a file.txt /media/gabor/CORSAIR/
Я проверяю время последнего изменения исходного файла:
$ ls -l --time-style=full-iso file.txt -rw-rw-r-- 1 gabor gabor 0 2018-09-22 15:09:23.317098281 +0200 file.txt
Я проверяю время последнего изменения скопированного файла:
$ ls -l --time-style=full-iso /media/gabor/CORSAIR/file.txt -rw-r--r-- 1 gabor gabor 0 2018-09-22 15:09:23.000000000 +0200 /media/gabor/CORSAIR/file.txt
Как вы можете видеть, секунды последнего времени модификации скопированного файла усекаются до нуля десятичных цифр. Однако, если я введу команду
if ! [ file.txt -nt /media/gabor/CORSAIR/file.txt ] && ! [ file.txt -ot /media/gabor/CORSAIR/file.txt ]; then echo "The last modification times are equal."; fi
Я получаю вывод The last modification times are equal.
Ситуация изменится, если я отключу и снова подключу USB-накопитель и снова выполню две последние команды:
$ ls -l --time-style=full-iso /media/gabor/CORSAIR/file.txt -rw-r--r-- 1 gabor gabor 0 2018-09-22 15:09:22.000000000 +0200 /media/gabor/CORSAIR/file.txt $ if [ file.txt -nt /media/gabor/CORSAIR/file.txt ]; then echo "The file is newer on the PC."; fi The file is newer on the PC.
Таким образом, после перемонтирования время последнего изменения скопированного файла дополнительно уменьшается на одну секунду. Однако дальнейшее демонтирование и повторный монтаж больше не влияют на время последней модификации. Кроме того, проверка файлов теперь показывает, что файл на ПК новее (хотя это не так).
Ситуация осложняется еще и тем, что время последнего изменения файлов по- разному отображается на моем компьютере и ноутбуке , разница составляет ровно 2 часа, хотя на моем компьютере и ноутбуке одинаковые настройки даты и времени!
Дальнейшая информация
И мой ПК, и ноутбук показывают поведение, описанное выше. У меня Ubuntu 14.04.5 (верный) на моем ПК и Ubuntu 16.04.2 (xenial) на моем ноутбуке.
Мои USB-накопители имеют файловую систему vfat. Выход mount | grep CORSAIR
на моем компьютере является
/dev/sdb1 on /media/gabor/CORSAIR type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2)
Выход mount | grep CORSAIR
на моем ноутбуке есть
/dev/sdb1 on /media/gabor/CORSAIR type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
Другие мои USB-накопители показывают то же поведение.
Вопрос
Можно ли как-то устранить разницу во времени последней модификации? Например, используя другие параметры при монтаже / демонтаже? Или это ошибка в Ubuntu?
Я хотел бы добиться того, чтобы временные метки исходных и скопированных файлов были точно такими же, чтобы синхронизация могла выполняться более эффективно. Кроме того, я хотел бы сохранить файловую систему vfat на своих USB-накопителях, чтобы их можно было использовать и под Windows.
ext4
файловую систему Linux ? (Поддержка linux для проприетарных файловых систем Microsoft, FAT32, exFAT, NTFS, имеет некоторые ограничения.) См. Эту ссылку, которая предлагает не только,ext4
но иudf
как альтернативу проприетарным файловым системам Microsoft.