¿Es posible encontrar archivos duplicados en mi disco que sean bit a bit idénticos pero que tengan nombres de archivo diferentes?
files
duplicate-files
estudiante
fuente
fuente
st_size
s coincidentes , eliminando aquellos con solo uno de los mismos, y luego calculando solo md5sums parast_size
s s coincidentes .Respuestas:
fdupes
puede hacer esto Deman fdupes
:En Debian o Ubuntu, puede instalarlo con
apt-get install fdupes
. En Fedora / Red Hat / CentOS, puede instalarlo conyum install fdupes
. En Arch Linux se puede utilizarpacman -S fdupes
, y en Gentoo,emerge fdupes
.Para ejecutar una verificación descendente desde la raíz de su sistema de archivos, que probablemente tomará una cantidad significativa de tiempo y memoria, use algo como
fdupes -r /
.Como se preguntó en los comentarios, puede obtener los duplicados más grandes haciendo lo siguiente:
Esto se romperá si sus nombres de archivo contienen nuevas líneas.
fuente
fdupes ....... | xargs ls -alhd | egrep 'M |G '
para mantener los archivos en formato legible para humanos y solo aquellos con tamaño en Megabytes o Gigabytes. Cambie el comando para adaptarse a las salidas reales.du
canalizado asort
le dirá.Otra buena herramienta es
fslint
:En sistemas basados en Debian, puede instalarlo con:
También puede hacerlo manualmente si no desea o no puede instalar herramientas de terceros. La mayoría de los programas funcionan calculando sumas de comprobación de archivos . Los archivos con el mismo md5sum casi seguramente contienen exactamente los mismos datos. Entonces, podrías hacer algo como esto:
Salida de muestra (los nombres de archivo en este ejemplo son los mismos, pero también funcionarán cuando sean diferentes):
Esto será mucho más lento que las herramientas dedicadas ya mencionadas, pero funcionará.
fuente
st_size
, eliminando cualquiera que solo tenga un archivo de este tamaño y luego calculando md5sums solo entre archivos con el mismost_size
.md5sum {}
conmd5 -q {}
ygawk '{print $1}'
concat
Respuesta corta: sí.
Versión más larga: eche un vistazo a la entrada de wikipedia fdupes , tiene una lista bastante buena de soluciones listas para usar . Por supuesto, usted puede escribir su propia, no es que difícil - programas de hash como
diff
,sha*sum
,find
,sort
yuniq
debe hacer el trabajo. Incluso puede ponerlo en una línea, y seguirá siendo comprensible.fuente
Si cree que una función hash (aquí MD5) no tiene colisión en su dominio:
¿Quieres nombres de archivo idénticos agrupados? Escriba un script simple
not_uniq.sh
para formatear la salida:Luego cambie el
find
comando para usar su script:Esta es una idea básica. Probablemente debería cambiar
find
si sus nombres de archivo contienen algunos caracteres. (por ejemplo, espacio)fuente
Pensé agregar una bifurcación mejorada reciente de fdupes, jdupes , que promete ser más rápida y más rica en funciones que los fdupes (por ejemplo, filtro de tamaño):
Esto buscará de forma recursiva archivos duplicados de más de 50 MB en el directorio actual y generará la lista resultante en myjdups.txt.
Tenga en cuenta que el resultado no está ordenado por tamaño y, dado que parece no estar integrado, he adaptado la respuesta @Chris_Down anterior para lograr esto:
fuente
Wikipedia tenía un artículo ( http://en.wikipedia.org/wiki/List_of_duplicate_file_finders ), con una lista de software de código abierto disponible para esta tarea, pero ahora se ha eliminado .
Agregaré que la versión GUI de fslint es muy interesante, ya que permite usar la máscara para seleccionar qué archivos eliminar. Muy útil para limpiar fotos duplicadas.
En Linux puedes usar:
Los 2 últimos trabajos en muchos sistemas (Windows, Mac y Linux) no he verificado FSLint
fuente
Aquí está mi opinión sobre eso:
Es diferente en el sentido de que solo divide hasta el primer 1 MB del archivo.
Esto tiene algunos problemas / características:
Lo uso para comparar videoclips, así que esto es suficiente para mí.
fuente