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

Linux – Wie synchronisiert man zwei Ordner mit Kommandozeilen-Tools?

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


Linux
  1. So starten Sie Linux über die Befehlszeile neu

  2. So löschen Sie Dateien mit einer bestimmten Erweiterung in der Linux-Befehlszeile

  3. Wie konvertiert man ein PDF in JPG mit der Befehlszeile unter Linux?

  4. Wie konvertiere ich ein DjVu-Dokument unter Linux nur mit Befehlszeilen-Tools in PDF?

  5. Wie synchronisiere ich zwei Ordner mit Befehlszeilentools?

Verzeichnis in Linux entfernen – So löschen Sie einen Ordner von der Befehlszeile aus

So überprüfen Sie die Betriebssystemversion mit der Linux-Befehlszeile

So installieren Sie Dig unter Linux mit Befehlszeilenbeispielen

So komprimieren Sie Ordner unter Linux

So finden Sie die IP-Adresse in der Linux-Befehlszeile

So überwachen Sie den Zustand von Linux-Servern mit Befehlszeilentools