¿Cuál es el comando rsync para fusionar “inteligentemente” dos carpetas?

¿Cuál es el comando rsync para fusionar “inteligentemente” dos carpetas?

Tengo algunas carpetas que se duplicaron por error y tengo que fusionarlas. Digamos que la carpeta A contiene el archivo X y la carpeta B contiene el archivo Y, me gustaría copiar el archivo X a la carpeta B. Pero, por supuesto, puedo enfrentar casos más complejos, donde tanto la carpeta A como la B contienen el mismo archivo X. : en esos casos, me gustaría conservar la copia más reciente del archivo, por lo que rsync debería comparar ambos archivos y, si el origen es anterior, simplemente omitirlo; de lo contrario, el destino es el anterior, sobrescribir.

¿Qué parámetros debo poner en la línea de comando rsync?

Esto es lo que encontré buscando en Google, pero no creo que sea correcto.

rsync -avz --ignore-existing src dest

La página de manual de alguna manera me supera.

PD: En aquellos casos en los que exista un archivo en ambas carpetas, lo mejor sería sobrescribir el más antiguo en la carpeta de destino y al mismo tiempo conservar una copia del más antiguo, solo como copia de seguridad en caso de que deba volver a la carpeta de destino. anterior

Respuesta1

Yo usaría:

rsync -abviuzP src/ dest/
  • -iactiva el formato detallado, que muestra más información que el formato predeterminado
  • -bcrea archivos de copia de seguridad rsync que existen en ambas carpetas, agregándolos ~al archivo anterior. Puedes controlar este sufijo con--suffix .suf
  • -uhace que la transferencia rsync omita archivos que son más nuevos en dest que en src
  • -zactiva la compresión, lo cual es útil al transferir archivos fácilmente comprimibles a través de enlaces lentos
  • -Pse enciende --partialy--progress
  • --partialhace que rsync mantenga los archivos parcialmente transferidos si la transferencia se interrumpe
  • --progressmuestra una barra de progreso para cada transferencia, útil si transfieres archivos grandes

información relacionada