Windows-Software zum Byte-für-Byte-Vergleich von Tausenden von Dateien

Kann jemand Windows-Software empfehlen, die einen Verzeichnisbaum durchläuft und jede Datei Byte für Byte mit einem anderen ähnlich strukturierten Baum vergleicht.

Um als identisch zu gelten, müssen die Dateien denselben Namen, denselben Inhalt und dieselbe Position in den beiden Bäumen haben.

Alles, was ich wissen muss, ist, welche Dateien unterschiedlich sind und welche im zweiten Baum fehlen. (Wenn es zeigt, welche Dateien sich in Baum Nr. 2 befinden, aber nicht in Baum Nr. 1, ist das ein netter Bonus.)

Ich muss Zehntausende von Dateien vergleichen, die sich über Hunderte von Gigabyte erstrecken, daher sind Geschwindigkeit und Einfachheit wichtig. Zuverlässigkeit und Genauigkeit sind unerlässlich .

Diese Frage ähnelt dieser anderen Frage , aber ich brauche keine zeilenweisen Berichte darüber, was in jeder Datei anders ist. Ich muss auch über 6 Ebenen in einem Baum hinausgehen; die Software muss den gesamten Baum durchlaufen.

Es ist auch dieser Frage ähnlich , aber ich brauche die tatsächlichen Bytes der verglichenen Dateien. Die Software kann nicht davon ausgehen, dass zwei Dateien mit demselben Namen (auch mit demselben Datum und derselben Uhrzeit) identisch sind.

Empfehlungen für kostenlose Software werden bevorzugt, ebenso wie Open-Source, aber alle Empfehlungen sind willkommen.

Wenn ich es richtig verstehe, suchen Sie nach einem Duplikatfinder.
Sagen Sie Byte für Byte: Würde ein Vergleich von Prüfsumme und Größe nicht auch funktionieren? Ziemlich unwahrscheinlich, dass zwei Dateien genau die gleiche Größe und Prüfsumme haben, aber "Unterschiede in Bytes".
@Thomas fragte: "Wenn ich es richtig verstehe, suchen Sie nach einem Duplikatfinder." Nun, nicht wirklich, aber ich sehe, wie Sie das lesen. Ich erwarte, dass 99 % der Dateien Duplikate sind. Außerdem müssen sich im Gegensatz zu einem Duplikat-Datei-Finder alle Dateien an derselben Position im entsprechenden Baum befinden, um als identisch zu gelten.
@Izzy fragte: "Byte für Byte sagen: Würde ein Prüfsummen- und Größenvergleich nicht auch funktionieren?" Gute Frage. Ich zögere, ja zu sagen, weil Prüfsummen nahezu perfekt, aber nicht perfekt sind. Ich habe kürzlich einige Arbeiten durchgeführt, bei denen ich herausgefunden habe, wie oft verschiedene Datensätze identische Prüfsummen erzeugen können (natürlich gilt, je länger die Prüfsumme, desto eindeutiger). Außerdem würde das Generieren von Prüfsummen immer noch erfordern, dass jede Datei gelesen wird. Alles in allem bin ich offen für Antworten, die Prüfsummen verwenden, insbesondere wenn es echte Vorteile gibt.
@RockPaperLizard Jupp :) OK, Zeit für die Kommentarbereinigung – ich habe schon damit begonnen. Immer noch offen für Xfer zu Q: Byte-für-Byte vs. Prüfsumme und vielleicht einige Details aus den anderen Kommentaren, die ich hinterlassen habe.
@defaultlocale Ja. Eigentlich bevorzuge ich WinMerge2011 ( bitbucket.org/jtuc/winmerge2011/downloads ), das eine verbesserte Version ist. Aber leider scheint es unabhängig von der verwendeten WinMerge-Version sehr lange zu dauern, große Dateien zu vergleichen. IIRC, es dauert ungefähr eine Stunde, um zwei 1-GB-Dateien zu vergleichen. Nur 50 davon können also 2 Tage dauern. Kennen Sie irgendwelche Einstellungen dafür, die es bei großen Dateien schneller machen?

Antworten (2)

Wenn der ähnlich strukturierte Baum identisch ist, können Sie Beyond Compare verwenden .

Diese Software kann Ordner und deren Inhalt einfach vergleichen

Screenshot der Anwendung

Vielen Dank. Sieht interessant aus, wenn auch teuer.

Eine der einfachsten Möglichkeiten, das zu tun, wonach Sie suchen, nicht Byte für Byte, aber mit einer sehr geringen Wahrscheinlichkeit, etwas zu verpassen, besteht darin, eine vollständige Baumliste für beide Bäume mit einem Fingerabdruck wie MD5 oder SHA1 für jede Datei zu erstellen.

Anschließend können Sie die beiden Listen Zeile für Zeile vergleichen. Mit Python geht das schnell.

Sie könnten ein solches Skript sogar erweitern, um die Fingerabdruckdatei des "Master"-Baums einzulesen und bei der Verarbeitung des Vergleichsbaums alle Dateien und Verzeichnisse anzuzeigen, die:

  1. Fehlt im Vergleichsbaum
  2. Im Vergleichsbaum, aber nicht im Master
  3. Dateien, die sich in beiden befinden, aber einen anderen Fingerabdruck haben (MD5/SHA1)

Etwas mehr Arbeit würde ein Tool schaffen, das die Einträge aus dem Hauptbaum nur dann aktualisieren könnte, wenn sich Zeit/Datum/Größe geändert haben. Und sobald Sie den „Fingerabdruck“ haben, ist es natürlich schnell und einfach, Ihren Stammbaum später mit sich selbst zu vergleichen, um zu erkennen, was sich geändert hat.

Obwohl Windows nicht mit Python ausgeliefert wird, ist es kostenlos unter www.python.org verfügbar .

Für mich ist „Einfachheit wichtig. Zuverlässigkeit und Genauigkeit sind unerlässlich“ nicht mit einer Lösung zu erfüllen, die ich selbst entwickeln muss