Tengo un problema con las marcas de tiempo de los archivos copiados de mi PC o computadora portátil a las unidades USB: la última hora de modificación del archivo original y la del archivo copiado son diferentes. Por lo tanto, sincronizar archivos entre mi PC y mi unidad USB es bastante engorroso.
Una descripción paso a paso.
Copio un archivo arbitrario de mi PC / laptop a una unidad USB usando la GUI o con el comando
cp -a file.txt /media/gabor/CORSAIR/
Compruebo la hora de la última modificación del archivo original:
$ 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
Compruebo la última hora de modificación del archivo copiado:
$ 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
Como puede ver, los segundos en el último tiempo de modificación del archivo copiado se truncan a cero dígitos decimales. Sin embargo, si ingreso el comando
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
Me sale la salida The last modification times are equal.
La situación cambia si desmonto y vuelvo a montar la unidad USB y ejecuto los dos últimos comandos nuevamente:
$ 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.
Entonces, después del remontaje, el tiempo de última modificación del archivo copiado se reduce aún más en un segundo. Sin embargo, desmontar y volver a montar más, ya no afecta el tiempo de la última modificación. Además, la prueba en los archivos ahora muestra que el archivo en la PC es más nuevo (aunque no lo es).
La situación se complica aún más por el hecho de que la última hora de modificación de los archivos se muestra de manera diferente en mi PC y en mi computadora portátil , la diferencia es exactamente 2 horas, ¡aunque la configuración de fecha y hora es la misma en mi PC y en mi computadora portátil!
Más información
Tanto mi PC como mi computadora portátil muestran el comportamiento descrito anteriormente. Tengo Ubuntu 14.04.5 (confiable) en mi PC y Ubuntu 16.04.2 (xenial) en mi computadora portátil.
Mis unidades USB tienen sistema de archivos vfat. La salida de mount | grep CORSAIR
en mi PC es
/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 salida de mount | grep CORSAIR
en mi computadora portátil es
/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)
Mis otras unidades USB muestran el mismo comportamiento.
Pregunta
¿Se puede eliminar la diferencia en los últimos tiempos de modificación de alguna manera? Por ejemplo, ¿usando otros parámetros en el montaje / desmontaje? ¿O es un error en Ubuntu?
Me gustaría lograr que las marcas de tiempo de los archivos originales y copiados sean exactamente las mismas, de modo que la sincronización se pueda hacer de manera más eficiente. Además, me gustaría mantener el sistema de archivos vfat en mis unidades USB, para poder usarlas también en Windows.
ext4
sistema de archivos de Linux ? (El soporte en Linux para los sistemas de archivos propietarios de Microsoft, FAT32, exFAT, NTFS, tiene algunos límites). Vea este enlace que sugiere no soloext4
sino tambiénudf
como alternativas a los sistemas de archivos propietarios de Microsoft.