Copié muchos archivos en muchas carpetas (~ 54 GB) de una ubicación ext4 a otra en cp ~/1 ~/2 -d -r -v -i
bash. Luego quise comprobar que todos los archivos se copiaron correctamente, así que ejecuté rsync --delete -vturOn ~/1 ~/2
rsync, pero quería copiar todos los archivos. ¿Por qué es esto?
PD: Tenía la intención de usarlo cp
con -a
, pero lo usé -d
por error.
Editar: una respuestaaquíme llevó a usar la --itemize-changes
bandera que me muestra >f..t......
para todos los archivos. La página de manual indica que los t
tiempos de modificación de los medios son diferentes, el tipo de archivo es un archivo ( f
) y solo se están modificando los atributos del elemento ( .
). ¿Es esto correcto? ¿Entonces lo único que cambiará serán los tiempos de modificación?
Editar: ejecuté rsync
(sin -n
) y, a pesar de que los t
tiempos de modificación eran diferentes, procedió a copiar todos los archivos nuevamente (el contenido real del archivo), lo cual es inesperado porque rsync debería hacer una copia diferencial de todos modos, ¿lo cual debería notarse?
Editar: detuvo la sincronización y la volvió a ejecutar sin el -t
parámetro. Ahora los cambios detallados mostraban 'T' en lugar de t
. Parece que tendré que copiar todos los archivos mediante rsync al menos una vez si deseo utilizar rsync en estos archivos en el futuro.
Editar: eliminé los archivos de destino y copié todo nuevamente con rsync con -van
parámetros.
Respuesta1
De la documentación de rsync:
Rsync encuentra archivos que deben transferirse mediante un algoritmo de "verificación rápida" (por defecto) que busca archivos que han cambiado de tamaño o en la hora de la última modificación.
Además, cuando tanto el origen como el destino son locales, rsync
se ejecuta con la --whole-file
opción de forma predeterminada.
-W, --whole-file
Con esta opción, no se utiliza el algoritmo de transferencia delta de rsync y, en su lugar, el archivo completo se envía tal cual. La transferencia puede ser más rápida si se utiliza esta opción cuando el ancho de banda entre las máquinas de origen y de destino es mayor que el ancho de banda del disco (especialmente cuando el "disco" es en realidad un sistema de archivos en red). Este es el valor predeterminado cuando tanto el origen como el destino se especifican como rutas locales, pero solo si no hay ninguna opción de escritura por lotes vigente.
No estoy seguro, pero parece que quizás quieras tener la --checksum
opción.
-c, --checksum skip based on checksum, not mod-time & size
Tenga en cuenta que esto requiere leer tanto los archivos de origen como los de destino del disco para calcular la suma de comprobación.
Más sobre esto: