Ich benutze normalerweise rsync
für diese Aufgabe:
rsync -nav --delete DIR1/ DIR2
SEI SEHR VORSICHTIG immer das benutzen -n
aka --dry-run
, Option, oder es werden die Verzeichnisse synchronisiert (der Inhalt wird geändert).
Dadurch werden Dateien anhand der Änderungszeiten und -größen verglichen ... I denken das willst du wirklich oder zumindest stört es dich nicht, wenn es das tut? Ich habe das Gefühl, dass Sie nur wollen, dass es passiert schneller Nicht, dass Sie es brauchen, um den Unterschied zwischen Dateiinhalten zu ignorieren. Wenn Sie nicht möchten, dass es unterschiedliche Dateien mit identischen Namen auflistet, denke ich, dass der Zusatz --ignore-existing
Option wird das tun.
Seien Sie sich auch bewusst, dass Sie keine setzen /
am Ende von DIR1
wird es veranlassen, die zu vergleichen Verzeichnis DIR1
mit dem Inhalt von DIR2
.
Die Ausgabe ist etwas ausführlich, zeigt Ihnen jedoch, welche Dateien / Verzeichnisse unterschiedlich sind. Dateien / Verzeichnisse in DIR2
und nicht in DIR1
wird mit dem Wort eingeleitet deleting
.
In einigen Situationen ist die Antwort von @ slartibartfast möglicherweise geeigneter, obwohl Sie die entfernen müssen -type d
Option zum Aktivieren der Auflistung von Nicht-Verzeichnisdateien. rsync
wird schneller sein, wenn Sie eine erhebliche Anzahl von Dateien / Verzeichnissen zum Vergleichen haben.