Nachdem ich von Windows zu Linux migriert bin, möchte ich eine alternative Software zu Winmerge finden oder lieber Befehlszeilentools lernen, um zwei Ordner unter Linux zu vergleichen und zu synchronisieren. Ich wäre Ihnen dankbar, wenn Sie mir sagen könnten, wie ich die folgenden Aufgaben auf der Befehlszeile ausführen kann … (Ich habe diff und rsync studiert, aber ich brauche noch etwas Hilfe.)
Wir haben zwei Ordner:„/home/user/A“ und „/home/user/B“
Ordner A ist der Ort, an dem normale Dateien und Ordner gespeichert werden, und Ordner B ist ein Sicherungsordner, der als vollständiger Spiegel von Ordner A dient. (Nichts wird direkt vom Benutzer in Ordner B gespeichert oder geändert.)
Meine Fragen sind:
-
Wie listet man Dateien auf, die nur in Ordner B existieren? (Z. B. diejenigen, die seit der letzten Synchronisierung aus Ordner A gelöscht wurden.)
-
Wie kopiert man Dateien, die nur in Ordner B vorhanden sind, zurück in Ordner A?
-
Wie listet man Dateien auf, die in beiden Ordnern vorhanden sind, aber unterschiedliche Zeitstempel oder Größen haben? (Diejenigen, die seit der letzten Synchronisierung in Ordner A geändert wurden. Ich möchte die Verwendung von Prüfsummen vermeiden, da es Zehntausende von Dateien gibt und dies den Prozess zu langsam machen würde.)
-
Wie erstelle ich eine exakte Kopie von Ordner A in Ordner B? Ich meine, kopieren Sie alles aus Ordner A in Ordner B, was nur in Ordner A existiert, und löschen Sie alles aus Ordner B, was nur in Ordner B existiert, aber ohne die Dateien zu berühren, die in beiden Ordnern gleich sind.
Akzeptierte Antwort:
Dadurch wird Ordner A in Ordner B verschoben:
rsync -avu --delete "/home/user/A" "/home/user/B"
Wenn Sie den Inhalt der Ordner A und B möchten Um dasselbe zu sein, geben Sie /home/user/A/
ein (mit dem Schrägstrich) als Quelle. Dies nimmt nicht den Ordner A, sondern seinen gesamten Inhalt und legt ihn in Ordner B ab. So:
rsync -avu --delete "/home/user/A/" "/home/user/B"
-a
Führen Sie die Synchronisierung unter Beibehaltung aller Dateisystemattribute durch-v
ausführlich ausführen-u
nur Dateien mit neuerer Änderungszeit (oder Größenunterschied bei gleichen Zeiten) kopieren--delete
Löschen Sie die Dateien im Zielordner, die in der Quelle nicht vorhanden sind
Manpage:https://download.samba.org/pub/rsync/rsync.html