Stellen Sie sicher, dass zwei Dateisysteme identisch sind, wobei spezielle Dateien ignoriert werden

3022
endolith

/ media / A und / media / B sollten identisch sein, ich möchte sie jedoch vor dem Löschen bestätigen.

Doppelte Dateisucher funktionieren nicht, da sie beispielsweise zwei Kopien derselben Datei in B finden. Ich möchte nur bestätigen, dass jede Datei in einer Datei identisch mit der anderen ist.

diff -qr /media/A/ /media/B/ scheint zu funktionieren, aber die Ausgabe ist mit Müll übersät

diff: / media / A // etc / alternatives / ControlPanel: Keine solche Datei oder Verzeichnis

und

Datei / media / A // dev / tty8 ist eine Zeichendatei, während Datei / media / B // dev / tty8 eine Zeichendatei ist

Ich kann das erstere mit unterdrücken 2> /dev/null, aber ich weiß nicht über das Letztere Bescheid.

rsync -avn /media/A/ /media/B/ erzeugt auch eine Menge Unordnung wie "Überspringen nicht regulärer Dateien".

Wie kann ich die beiden Bäume vergleichen und sicherstellen, dass alle echten Dateien in beiden vorhanden sind und identisch sind?

1
Sie erwähnen das Betriebssystem nicht. Ich vermute, dass es sich um eine Linux / Unix-Variante handelt, sodass Ihre Nachricht möglicherweise mehr Antworten erhält, wenn sie als solche gekennzeichnet wurde. Wenn ich dies jedoch unter Windows mache, würde ich eines meiner Lieblingstools Beyond Compare (von http://www.scootersoftware.com/) verwenden, das auch eine Linux-Version hat. Dies ist nicht kostenlos, aber es gibt eine 30-tägige Testversion. Der einzige andere Weg, den ich kenne, wäre, die diff-Ausgabe in eine Datei zu leiten und dann die irrelevanten Zeilen herauszuziehen, bis sie eine überschaubare Größe erreicht. Sie können sed verwenden, oder ist es falsch? (Es ist Jahre her, seit ich entweder benutze) sgmoore vor 13 Jahren 1

3 Antworten auf die Frage

2
Captain Planet

Mit diesem folgenden Befehl sollte geprüft werden, ob sie identisch sind.

diff imageA imageB -r 2> /dev/null | grep -v "is a character special file" | grep -v "is a block special file" && echo "viola" 
0
bwall

Schauen Sie sich Guiffy an. Es ist nicht kostenlos, hat aber eine kostenlose 21-Tage-Testversion, die die Funktionalität nicht einschränkt:

Guiffy-Startseite

Vollständige (umfangreiche) Liste von Funktionen

Es behauptet, Folgendes zu tun, und scheint dem, was Sie suchen, sehr nahe zu sein, oder es könnte nahe genug sein, um es von dort aus zu nehmen:

  • Der Ordnervergleich funktioniert mit Unicode-Datei- / Ordnernamen
  • Folder Compare funktioniert mit Archivdateien (.zip, .tar, .jar und anderen).
  • Vergleiche speichern speichern - das Guiffy-Verzeichnisvergleichstool generiert Berichte als HTML
  • Startet schnell einen Dateivergleich aus dem Ordnervergleich.
  • Benutzerfreundliche Ordnervergleichsansicht mit Explorer-ähnlicher Oberfläche und erweiterbaren Unterordnern.
  • Die Ordnervergleichsoberfläche enthält Popup-Menüs für Dateisynchronisierungsvorgänge.
  • Option für rekursiven Vergleich - Der Ordnervergleich kann einen Dateibaumvergleich durchführen.

0
Tobu

Verwenden Sie rsync im Schreibmodus (mit -v/ --verboseund ohne -n/ --dry-run) und führen Sie es einige Male aus, bis sich der Ausgang stabilisiert. Führen Sie es als root aus, damit das Wiederherstellen nicht regulärer Dateien (impliziert durch -D und -a) funktioniert, wodurch das Durcheinander beseitigt werden sollte.