Was ist der Befehl rsync, um zwei Ordner «intelligent» zusammenzuführen?

39

Ich habe einige Ordner, die versehentlich dupliziert wurden, und ich muss sie zusammenführen. Angenommen, Ordner A enthält Datei X und Ordner B enthält Datei Y. Ich möchte, dass Datei X in Ordner B kopiert wird. Natürlich kann es auch zu komplexeren Fällen kommen, in denen z. B. Ordner A und B dieselbe Datei X enthalten : In diesen Fällen möchte ich die neueste Kopie der Datei behalten, daher sollte rsync beide Dateien vergleichen. Wenn der Ursprung älter ist, überspringen Sie ihn einfach, andernfalls ist das Ziel das ältere, überschreiben Sie ihn.

Welche Parameter sollte ich in die rsync-Befehlszeile eingeben?

Dies ist, was ich googeln fand, aber ich denke nicht, ist richtig.

rsync -avz --ignore-existing src dest

Die Manpage ist mir irgendwie ein Rätsel.

Vielen Dank.

PS: In den Fällen, in denen eine Datei in beiden Ordnern vorhanden ist, ist es am besten, die ältere Datei in den Zielordner zu überschreiben und gleichzeitig eine Kopie der älteren zu speichern Bisherige

Tiziano Solignani
quelle

Antworten:

66

Ich würde ... benutzen:

rsync -abviuzP src/ dest/
  • -i Aktiviert das aufgeschlüsselte Format, in dem mehr Informationen als im Standardformat angezeigt werden
  • -berstellt rsync-Sicherungsdateien, die in beiden Ordnern vorhanden sind, und hängt sie ~an die alte Datei an. Sie können dieses Suffix mit steuern--suffix .suf
  • -u Lässt rsync Dateien überspringen, die in dest neuer sind als in src
  • -z Aktiviert die Komprimierung, die nützlich ist, wenn Sie leicht komprimierbare Dateien über langsame Verbindungen übertragen
  • -Pschaltet sich ein --partialund--progress
  • --partial bewirkt, dass rsync teilweise übertragene Dateien beibehält, wenn die Übertragung unterbrochen wird
  • --progress Zeigt für jede Übertragung einen Fortschrittsbalken an, der nützlich ist, wenn Sie große Dateien übertragen
user49740
quelle
2
Wirklich nett, ich habe am Endersync -abuP
qed