Ich habe ein Problem mit den Zeitstempeln von Dateien, die von meinem PC oder Laptop auf USB-Laufwerke kopiert wurden: Der letzte Änderungszeitpunkt der Originaldatei und der der kopierten Datei sind unterschiedlich. Daher ist das Synchronisieren von Dateien zwischen meinem PC und meinem USB-Laufwerk ziemlich umständlich.
Eine schrittweise Beschreibung
Ich kopiere eine beliebige Datei von meinem PC / Laptop über die GUI oder mit dem Befehl auf ein USB-Laufwerk
cp -a file.txt /media/gabor/CORSAIR/
Ich überprüfe den letzten Änderungszeitpunkt der Originaldatei:
$ 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
Ich überprüfe den letzten Änderungszeitpunkt der kopierten Datei:
$ 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
Wie Sie sehen, werden die Sekunden in der letzten Änderungszeit der kopierten Datei auf null Dezimalstellen gekürzt. Allerdings wenn ich den befehl eingebe
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
Ich bekomme die Ausgabe The last modification times are equal.
Die Situation ändert sich, wenn ich das USB-Laufwerk aushänge und wieder einbinde und die letzten beiden Befehle erneut ausführe:
$ 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.
Nach dem erneuten Mounten verringert sich die letzte Änderungszeit der kopierten Datei um eine Sekunde. Ein weiteres Abhängen und erneutes Abhängen wirkt sich jedoch nicht mehr auf den Zeitpunkt der letzten Änderung aus. Außerdem zeigt der Test der Dateien jetzt, dass die Datei auf dem PC neuer ist (obwohl dies nicht der Fall ist).
Erschwerend kommt hinzu, dass die letzte Änderungszeit von Dateien auf meinem PC und auf meinem Laptop unterschiedlich angezeigt wird , wobei der Unterschied genau 2 Stunden beträgt, obwohl Datum und Uhrzeit auf meinem PC und auf meinem Laptop gleich eingestellt sind!
Weitere Informationen
Sowohl mein PC als auch mein Laptop zeigen das oben beschriebene Verhalten. Ich habe Ubuntu 14.04.5 (vertrauenswürdig) auf meinem PC und Ubuntu 16.04.2 (xenial) auf meinem Laptop.
Meine USB-Sticks haben ein VFAT-Dateisystem. Die Ausgabe von mount | grep CORSAIR
auf meinem PC ist
/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)
Die Ausgabe von mount | grep CORSAIR
auf meinem Laptop ist
/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)
Meine anderen USB-Laufwerke zeigen dasselbe Verhalten.
Frage
Kann der Unterschied in den letzten Änderungszeiten irgendwie beseitigt werden? Verwenden Sie zum Beispiel andere Parameter beim Ein- und Aushängen? Oder ist es ein Fehler in Ubuntu?
Ich möchte erreichen, dass die Zeitstempel der ursprünglichen und der kopierten Dateien genau gleich sind, damit die Synchronisierung effizienter durchgeführt werden kann. Außerdem möchte ich das vfat-Dateisystem auf meinen USB-Laufwerken behalten, damit ich sie auch unter Windows verwenden kann.
ext4
Dateisystem? (Die Linux-Unterstützung für Microsoft-proprietäre Dateisysteme, FAT32, exFAT, NTFS, hat einige Grenzen.) Siehe diesen Link, der nicht nur,ext4
sondern auchudf
Alternativen zu Microsoft-proprietären Dateisystemen vorschlägt .