GNU/Linux >> LINUX-Kenntnisse >  >> Linux

rsync löscht keine Dateien am Ziel

Lösung 1:

Entfernen Sie den * . Wie in den rsync-Manpages erwähnt, ist --delete Option funktioniert nicht mit Wildcard-Einträgen.

Verwenden Sie stattdessen Folgendes:

rsync -a --delete $DIR1/ $DIR2/

"--deleteThis weist rsync an, irrelevante Dateien von der empfangenden Seite zu löschen (solche, die nicht auf der sendenden Seite sind), aber nur für die Verzeichnisse, die synchronisiert werden. Sie müssen rsync gebeten haben, das gesamte Verzeichnis zu senden ( B. dir oder dir/ ) ohne Verwendung eines Platzhalters für den Inhalt des Verzeichnisses (z. B. dir/* ), da der Platzhalter von der Shell erweitert wird und rsync somit eine Aufforderung erhält, einzelne Dateien zu übertragen, nicht das übergeordnete Verzeichnis der Dateien. Dateien, die von der Übertragung ausgeschlossen sind, sind ebenfalls von der Löschung ausgeschlossen, es sei denn, Sie verwenden den --delete-excluded Option oder markieren Sie die Regeln als nur auf der Senderseite übereinstimmend (siehe Modifikatoren zum Einschließen/Ausschließen im Abschnitt FILTERREGELN)."

Lösung 2:

Der Grund dafür ist, dass Sie rsync auf /tmp/1/b aufrufen, was die Datei /tmp/1/a überhaupt nicht berücksichtigt.

Ihre Absicht scheint zu sein, das Verzeichnis /tmp/1/ zu synchronisieren -- wenn Sie "/tmp/1/" als Quelle anstelle der einzelnen Dateien verwenden, wird es feststellen, dass "a" aus dem Verzeichnis gelöscht und entfernt wurde es vom Ziel entfernt.

Lösung 3:

Wenn Sie die zweite rsync-Zeile auf rsync -a --delete $DIR1/ $DIR2 ändern (ohne das *) es wird funktionieren. Der Grund ist, dass die Shell den * erweitert zu den Dateinamen im ersten Verzeichnis, das in Ihrem Fall nur b ist, sodass die fehlende Datei a von rsync überhaupt nicht berücksichtigt wird, da der ausgeführte Befehl tatsächlich rsync -a --delete $DIR1/b $DIR2 ist .


Linux
  1. Linux – Große Verzeichnisse mit Tausenden von Dateien effizient löschen?

  2. Rm-Option zum Scheitern bei nicht vorhandenen Dateien?

  3. Wie kann man Rsync selektiv stumm schalten?

  4. Sichern Sie Ihre Dateien mit rsync

  5. Linux Dateien und Verzeichnisse löschen

Rsync-Befehl in Linux mit Beispielen

Rsync-Beispiele zum Übertragen von Dateien unter Linux

Linux-Ordner zusammenführen:rsync?

Rsync-Dateien über Zwischenhost

Lieblings-rsync-Tipps und Tricks

Alle /var/log löschen?