Ich habe einen großen Ordner "X" in meinem Home-Verzeichnis und eine veraltete Kopie davon auf einem Flash-Laufwerk - Y.
Was ist das Analogon von rm Y; cp X Y
, aber ohne bereits vorhandene Dateien zu überschreiben?
21
Es gibt noch viele weitere Eigenschaften rsync als die vorherige Antwort erwähnt. Sie sollten selbst nachschauen:
man rsync
Aber für dein Problem würde ich vorschlagen:
rsync -a --delete X Y
Auf diese Weise löscht der Empfänger (Y) alle Dateien, die sich nicht in X befinden. Stellen Sie sicher, dass Sie es richtig machen. Wird falsch verwendet, da root das System leicht töten kann ... :)
rsync -a --delete X/ Y
. Dieser kleine Schrägstrich nach X hat dazu geführt, dass es so funktioniert, wie es für mich vorgesehen war, sodass es auch anderen helfen könnte. Hier erklärt: abbeyworkshop.com/howto/unix/nix_rsync/index.htmlSchaut mal rein rsync (1) . Es soll so ziemlich genau das tun, was Sie wollen.
Es unterstützt das Fernkopieren über sein eigenes Protokoll oder ssh, es kann jedoch auch lokal verwendet werden.
Abhängig von dem gewünschten Verhalten möchten Sie möglicherweise auch die
--update
Möglichkeit. Dadurch wird rsync angewiesen, keine Dateien zu überschreiben, die bereits auf dem Ziel vorhanden sind und neuer sind als die in der Quelle.Wenn Sie zusätzliche Dateien entfernen möchten (d. H. Dateien, die in Y vorhanden sind, aber nicht in X), können Sie die
--delete
Möglichkeit.quelle
rm Y; cp X Y
werden.Versuchen Sie es mit rsnyc, möglicherweise mit dem folgenden Befehl:
-u
= überschreiben Sie keine Datei am Ziel, wenn diese geändert wirdquelle
rm Y; cp X Y
werden.Ich glaube, einige der Funktionen, nach denen Sie in Option -u (Update) suchen, sind in dieser Option tatsächlich vorhanden:
"--ignore-exists" - überspringt die Aktualisierung der auf dem Empfänger vorhandenen Dateien
quelle