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
- Abre ambos archivos.
- Busca hacia adelante en esos archivos hasta que uno difiere.
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.
- Por tamaño : los archivos con diferentes tamaños no pueden ser idénticos. Esto lleva poco tiempo ya que ni siquiera tiene que abrir el archivo.
- Por MD5 : los archivos con diferentes valores de MD5 / Sha no pueden ser idénticos. Esto lleva un poco más de tiempo porque tiene que leer todos los bytes del archivo y realizar cálculos matemáticos en ellos, pero hace que las comparaciones múltiples sean más rápidas.
- Fallando las diferencias anteriores : realice una comparación byte por byte de los archivos. Esta es una prueba lenta de ejecutar, por lo que se deja hasta después de que se hayan considerado todos los demás factores de eliminación.
Fdupes hace esto. Y debe usar un software que use el mismo criterio.