Tengo muchos archivos de imagen duplicados en mi computadora con Windows, en diferentes subcarpetas y con diferentes nombres de archivo.
¿Qué script Python o programa gratuito recomendaría para eliminar los duplicados?
(He leído esta pregunta similar, pero el cartel allí pregunta acerca de duplicados visuales con diferentes tamaños de archivo. Los míos son duplicados exactos con diferentes nombres de archivo).
windows
python
deduplication
image-processing
BioGeek
fuente
fuente
Respuestas:
No confíe en sumas MD5.
Las sumas MD5 no son una forma confiable de verificar si hay duplicados, solo son una forma de verificar las diferencias.
Use los MD5 para encontrar posibles duplicados candidatos , y luego para cada par que comparta un MD5
Al ver que me votan negativamente las personas que hacen enfoques ingenuos para archivar identidades duplicadas, si va a confiar completamente en un algoritmo hash, por amor de Dios, use algo más duro como SHA256 o SHA512, al menos reducirá la probabilidad de un grado razonable al tener más bits revisados. MD5 es extremadamente débil para condiciones de colisión.
También aconsejo a las personas que lean las listas de correo aquí tituladas 'verificación de archivos': http://london.pm.org/pipermail/london.pm/Week-of-Mon-20080714/thread.html
Si dice "MD5 puede identificar todos los archivos de manera única", entonces tiene un error lógico.
Dado un rango de valores, de longitudes variables de 40,000 bytes de longitud a 100,000,000,000 bytes de longitud, el número total de combinaciones disponibles para ese rango excede en gran medida el posible número de valores representados por MD5, con un peso de solo 128 bits de longitud.
¿Representa 2 ^ 100,000,000,000 combinaciones con solo 2 ^ 128 combinaciones? No creo que sea probable.
La manera menos ingenua
La forma menos ingenua, y la forma más rápida, de eliminar los duplicados es la siguiente.
Fdupes hace esto. Y debe usar un software que use el mismo criterio.
fuente
Es un trazador de líneas en sistemas operativos tipo Unix (incluidos Linux) o Windows con Cygwin instalado:
md5sum (que es aproximadamente un 50% más rápido) se puede usar si sabe que no hay colisiones creadas deliberadamente (tendría más posibilidades de ganar 10 loterías importantes que la posibilidad de encontrar una colisión md5 que ocurra naturalmente).
Si desea ver todos los duplicados que tiene en lugar de eliminarlos, simplemente cambie la
unlink $file
parte aprint $file, "\n"
.fuente
He usado
fdupes
(escrito en C) yfreedups
(Perl) en sistemas Unix, y también podrían funcionar en Windows; también hay otros similares que se dice que el trabajo en Windows:dupmerge
,liten
(escrito en Python), etc.fuente
Para eliminar imágenes duplicadas en Windows, eche un vistazo a DupliFinder. Puede comparar imágenes por una variedad de criterios, como el nombre, el tamaño y la información de la imagen real.
Para otras herramientas para eliminar archivos duplicados, eche un vistazo a este artículo de Lifehacker .
fuente
En lugar de DupliFinder, prueba el proyecto bifurcado, DeadRinger . Hemos solucionado un montón de errores en el proyecto original, hemos agregado un montón de características nuevas y hemos mejorado drásticamente el rendimiento.
fuente
Una opción puede ser Dupkiller .
fuente