Finden Sie doppelte Hashes

739
Dr.Ping

Ich habe eine Reihe von Dateien (4800 Dateien), von denen ich glaube, dass sie viele Duplikate und Tripel enthalten. Das Problem ist, dass sie nicht die gleichen Namen haben. Ich habe schon die einfachen mit den gleichen Namen ausgesucht. Die Dateien liegen alle in einem engen Größenbereich, daher ist dies nicht hilfreich.

Ich dachte, es könnte möglich sein, ein Skript auszuführen, um die Hashwerte aller Dateien in einem Verzeichnis zu überprüfen und doppelte Hashwerte zu melden. Weiß jemand, wie man so etwas erreichen kann?

Kann unter Linux und Windows.

Vielen Dank

1

1 Antwort auf die Frage

2
Charles Burge

Hier ist ein Powershell-Befehl, der alle Ihre Dateien (in einem bestimmten Verzeichnis) hashiert und das Ergebnis in eine CSV-Datei ausgibt.

Get-FileHash -Algorithm MD5 -Path (Get-ChildItem "\\Path\to\files\*.*" -Recurse) | Export-Csv C:\Temp\hashes.csv 

Danach können Sie die CSV-Datei in Excel öffnen und die Duplikate entfernen.

Beachten Sie, dass das Cmdlet "Get-FileHash" nur in Powershell Version 4 oder höher verfügbar ist.

Wird es auch Unterverzeichnisse einchecken? Ist das, was -Recurse tut? Dr.Ping vor 6 Jahren 0
Ja, das ist richtig. Charles Burge vor 6 Jahren 0
Vielen Dank! Genau das, was ich brauchte. Hat mir eine Tonne geholfen. Gefunden ein paar hundert Duplikate, die andere Duplikate-Finder nicht fanden. Ich habe den Algorithmus in sha1 geändert, um sicherzugehen. Dr.Ping vor 6 Jahren 0
Nach dem Export in eine CSV-Datei können Sie mit Hilfe der bedingten Formatierung (und Sortierung) von Excel die Duplikate leicht finden Dr.Ping vor 6 Jahren 0
Es ist egal, welchen Algorithmus Sie verwenden, solange Sie konsistent bleiben. Die Verwendung von MD5 ist jedoch insgesamt schneller, da die Berechnung der einzelnen Komponenten weniger Zeit in Anspruch nimmt. Charles Burge vor 6 Jahren 0
Auch wahr. Sha1 brauchte nur wenige Sekunden Dr.Ping vor 6 Jahren 0