qual è il comando rsync per unire «in modo intelligente» due cartelle?


39

Ho alcune cartelle che sono state duplicate per errore e devo unirle insieme. Supponiamo che la cartella A contenga il file X e la cartella B contenga il file Y, vorrei che il file X venisse copiato nella cartella B. Ma, naturalmente, posso affrontare casi più complessi, in cui sia la cartella A che la B contengono lo stesso file X : in quei casi, vorrei conservare la copia più recente del file, quindi rsync dovrebbe confrontare entrambi i file, e se l'origine è più vecchia salta semplicemente, altrimenti la destinazione è quella più vecchia, sovrascrivi.

Quali parametri devo inserire nella riga di comando rsync?

Questo è ciò che ho trovato su Google, ma non credo sia corretto.

rsync -avz --ignore-existing src dest

La pagina man è in qualche modo al di là di me.

Grazie.

PS nei casi in cui esiste un file in entrambe le cartelle, la cosa migliore sarebbe sovrascrivere il vecchio nella cartella di destinazione e allo stesso tempo conservare una copia del vecchio, proprio come un backup nel caso in cui dovessi tornare al precedente

Risposte:


66

Io userei:

rsync -abviuzP src/ dest/
  • -i attiva il formato dettagliato, che mostra più informazioni rispetto al formato predefinito
  • -bcrea i file di backup rsync esistenti in entrambe le cartelle, aggiungendo ~al vecchio file. Puoi controllare questo suffisso con--suffix .suf
  • -u fa in modo che rsync transfer salti i file più recenti in dest che in src
  • -z attiva la compressione, utile quando si trasferiscono file facilmente comprimibili su collegamenti lenti
  • -Psi accende --partiale--progress
  • --partial fa in modo che rsync mantenga i file parzialmente trasferiti se il trasferimento viene interrotto
  • --progress mostra una barra di avanzamento per ogni trasferimento, utile se si trasferiscono file di grandi dimensioni

2
Davvero bello, ho finito per usarersync -abuP
qed
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.