Estoy copiando muchos archivos que han cambiado de un servidor a otro usando rsync. Sé que puedo usar la -n
opción para hacer una ejecución en seco, por lo que puedo ver qué archivos se han cambiado. Sin embargo, ¿es posible obtener rsync para imprimir una diferencia del contenido del archivo que ha cambiado? ¿Me gustaría ver qué sucede antes de hacer una copia? ¿Algo que pueda guardar en un archivo y aplicar con diff (1) más adelante?
19
rsync --diff
dos años después ...rsync no puede hacer esto de forma nativa, pero si existe la posibilidad de usar unísono , puede producir un formato de estilo diff a partir de eso.
fuente
Para crear parche:
Para aplicarlo:
o use un script generado automáticamente:
Fuentes:
fuente
No es posible de forma nativa porque rsync solo se preocupa por las diferencias binarias entre los archivos.
Es posible que pueda escribirlo, utilizando la salida de rsync. Pero sería hackish.
Sin embargo, creo que es nativamente posible con Unison .
fuente
¿Por qué no usar algo como diff (para archivos de texto) o xdelta (para archivos binarios) para generar los diffs? ¿Por qué necesita obtener algo específicamente de rsync?
fuente
Para ampliar la respuesta de Kyle, esto automatiza el proceso. Tenga en cuenta que está totalmente sin probar, probablemente bastante frágil, y puede eliminar su computadora y matar a su perro.
fuente
El algoritmo rsync funciona comparando fragmentos binarios del archivo. Tal diferencia binaria no está destinada a ser imprimible. Hay un comando llamado rdiff que usa el algoritmo rsync para generar un diferencial binario, pero no creo que sea útil para lo que describe, se usa comúnmente para implementar copias de seguridad incrementales.
fuente