У мене виникають проблеми з часовими позначками файлів, скопійованих з мого ПК або ноутбука на USB-накопичувачі: час останньої модифікації вихідного файлу та копіюваного файлу відрізняються. Тому синхронізація файлів між моїм ПК та моїм USB-накопичувачем досить громіздка.
Покроковий опис
Я копіюю довільний файл з ПК / ноутбука на USB-накопичувач за допомогою GUI або за допомогою команди
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, NTFS, EXFAT, мають деякі обмеження.) Див це посилання , яка передбачає не тільки ,ext4
а й вudf
якості альтернативи пропрієтарних файлових систем Microsoft.