¿Por qué rsync copia archivos después de copiarlos manualmente?

¿Por qué rsync copia archivos después de copiarlos manualmente?

Copié muchos archivos en muchas carpetas (~ 54 GB) de una ubicación ext4 a otra en cp ~/1 ~/2 -d -r -v -ibash. Luego quise comprobar que todos los archivos se copiaron correctamente, así que ejecuté rsync --delete -vturOn ~/1 ~/2rsync, pero quería copiar todos los archivos. ¿Por qué es esto?

PD: Tenía la intención de usarlo cpcon -a, pero lo usé -dpor error.

Editar: una respuestaaquíme llevó a usar la --itemize-changesbandera que me muestra >f..t......para todos los archivos. La página de manual indica que los ttiempos 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 ttiempos 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 -tpará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 -vanpará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, rsyncse ejecuta con la --whole-fileopció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 --checksumopció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:

https://superuser.com/a/118984/219809

https://serverfault.com/a/279346

información relacionada