J'ai un problème avec les horodatages des fichiers copiés depuis mon PC ou ordinateur portable vers des clés USB: la dernière heure de modification du fichier d'origine et celle du fichier copié sont différentes. Par conséquent, la synchronisation des fichiers entre mon PC et ma clé USB est assez compliquée.
Une description étape par étape
Je copie un fichier arbitraire de mon PC / ordinateur portable sur une clé USB en utilisant l'interface graphique ou avec la commande
cp -a file.txt /media/gabor/CORSAIR/
Je vérifie la dernière heure de modification du fichier d'origine:
$ 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
Je vérifie la dernière heure de modification du fichier copié:
$ 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
Comme vous pouvez le voir, les secondes de la dernière heure de modification du fichier copié sont tronquées à zéro chiffre décimal. Cependant, si j'entre la commande
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
Je reçois la sortie The last modification times are equal.
La situation change si je démonte et remonte la clé USB et que j'exécute à nouveau les deux dernières commandes:
$ 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.
Ainsi, après le remontage, la dernière heure de modification du fichier copié est encore réduite d'une seconde. Cependant, le démontage et le remontage supplémentaires n'affectent plus la dernière modification. En outre, le test sur les fichiers montre maintenant que le fichier sur le PC est plus récent (bien qu'il ne le soit pas).
La situation est encore compliquée par le fait que la dernière heure de modification des fichiers est affichée différemment sur mon PC et sur mon ordinateur portable , la différence étant exactement de 2 heures, bien que le réglage de la date et de l'heure soit le même sur mon PC et sur mon ordinateur portable!
Plus d'informations
Mon PC et mon ordinateur portable affichent le comportement décrit ci-dessus. J'ai Ubuntu 14.04.5 (fidèle) sur mon PC et Ubuntu 16.04.2 (xenial) sur mon ordinateur portable.
Mes clés USB ont un système de fichiers vfat. La sortie de mount | grep CORSAIR
sur mon PC est
/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)
La sortie de mount | grep CORSAIR
sur mon ordinateur portable est
/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)
Mes autres clés USB affichent le même comportement.
Question
La différence dans les derniers temps de modification peut-elle être éliminée d'une manière ou d'une autre? Par exemple, utiliser d'autres paramètres lors du montage / démontage? Ou est-ce un bug dans Ubuntu?
Je voudrais que les horodatages des fichiers originaux et copiés soient exactement les mêmes, afin que la synchronisation puisse être effectuée plus efficacement. De plus, je voudrais conserver le système de fichiers vfat sur mes clés USB, afin de pouvoir également les utiliser sous Windows.
ext4
système de fichiers Linux ? (La prise en charge sous Linux des systèmes de fichiers propriétaires Microsoft, FAT32, exFAT, NTFS, a certaines limites.) Voir ce lien qui suggère non seulementext4
mais égalementudf
comme alternatives aux systèmes de fichiers propriétaires Microsoft.