Ich habe viele doppelte Bilddateien auf meinem Windows-Computer, in verschiedenen Unterordnern und mit verschiedenen Dateinamen.
Welches Python-Skript oder Freeware-Programm würden Sie zum Entfernen der Duplikate empfehlen?
(Ich habe diese ähnliche Frage gelesen , aber das dortige Poster fragt nach visuellen Duplikaten mit unterschiedlichen Dateigrößen. Meine sind exakte Duplikate mit unterschiedlichen Dateinamen.)
windows
python
deduplication
image-processing
BioGeek
quelle
quelle
Antworten:
Verlassen Sie sich nicht auf MD5-Summen.
MD5-Summen sind kein zuverlässiger Weg, um nach Duplikaten zu suchen, sondern nur, um nach Unterschieden zu suchen.
Verwenden Sie MD5s, um mögliche Kandidaten- Duplikate zu finden , und dann für jedes Paar, das sich ein MD5 teilt
Wenn Sie sich nur auf einen Hash-Algorithmus verlassen, sollten Sie, um Himmels willen, etwas härteres wie SHA256 oder SHA512 verwenden, zumindest verringern Sie die Wahrscheinlichkeit auf ein vernünftiger Grad, indem mehr Bits überprüft werden. MD5 ist für Kollisionsbedingungen außerordentlich schwach.
Ich rate den Lesern auch, Mailinglisten mit dem Titel "Dateiprüfung" zu lesen: http://london.pm.org/pipermail/london.pm/Week-of-Mon-20080714/thread.html
Wenn Sie sagen "MD5 kann alle Dateien eindeutig identifizieren", liegt ein logischer Fehler vor.
Bei einer Reihe von Werten, von unterschiedlicher Länge von 40.000 Bytes lang zu 100.000.000.000 Bytes in der Länge, die Gesamtzahl der Kombinationen zur Verfügung , um diesen Bereich erheblich übersteigt die mögliche Anzahl der Werte , die von MD5 dargestellt, in ein Gewicht von gerade einmal 128 Bit Länge.
Stellen Sie 2 ^ 100,000,000,000 Kombinationen mit nur 2 ^ 128 Kombinationen dar? Das halte ich nicht für wahrscheinlich.
Der am wenigsten naive Weg
Der am wenigsten naive und schnellste Weg, um Duplikate auszusortieren, ist der folgende.
Fdupes macht das. Und Sie sollten Software verwenden, die dieselben Kriterien verwendet.
quelle
Es ist ein One-Liner-Betriebssystem unter Unix (einschließlich Linux) oder Windows mit Cygwin:
md5sum (das ist ungefähr 50% schneller) kann verwendet werden, wenn Sie wissen, dass es keine absichtlich verursachten Kollisionen gibt.
Wenn Sie alle Dups sehen möchten, die Sie haben, anstatt sie zu entfernen, ändern Sie einfach das
unlink $file
Teil inprint $file, "\n"
.quelle
Ich habe
fdupes
(in C geschrieben) undfreedups
(Perl) auf Unix-Systemen verwendet, und sie funktionieren möglicherweise auch unter Windows. es gibt auch ähnliche , die Arbeit auf Windows geltend gemacht werden:dupmerge
,liten
(geschrieben in Python), usw.quelle
Um doppelte Bilder unter Windows zu entfernen, besuchen Sie DupliFinder. Es kann Bilder anhand verschiedener Kriterien wie Name, Größe und tatsächliche Bildinformationen vergleichen.
Weitere Tools zum Entfernen doppelter Dateien finden Sie in diesem Lifehacker- Artikel.
quelle
Versuchen Sie statt DupliFinder das Forked- Projekt DeadRinger . Wir haben eine Menge Fehler im ursprünglichen Projekt behoben, eine Reihe neuer Funktionen hinzugefügt und die Leistung drastisch verbessert.
quelle
Eine Option kann Dupkiller sein .
quelle