Es gibt viel mehr Eigenschaften für rsync als in der vorherigen Antwort erwähnt. Sie sollten sich selbst darum kümmern:
man rsync
Aber für Ihr Problem würde ich vorschlagen:
rsync -a --delete X Y
Auf diese Weise löscht der Empfänger (Y) jede Datei, die er hat und die sich nicht in X befindet. Achten Sie jedoch darauf, dass Sie es richtig machen. Falsch verwendet, da root Ihr System leicht töten kann ... :)
Schauen Sie sich rsync(1) an. Es soll ziemlich genau das tun, was Sie wollen.
rsync -av X Y
Es unterstützt das Kopieren aus der Ferne über sein eigenes Protokoll oder ssh, kann aber auch lokal verwendet werden.
Abhängig von dem genauen Verhalten, das Sie möchten, können Sie auch den --update
übergeben Möglichkeit. Dadurch wird rsync angewiesen, keine Dateien zu überschreiben, die bereits auf dem Ziel vorhanden und neuer sind als die in der Quelle.
Wenn Sie zusätzliche Dateien entfernen möchten (d. h. Dateien, die in Y, aber nicht in X existieren), können Sie den --delete
hinzufügen Option.