Find-Duplicate-Files-in-Linux-1

Organizar tu directorio personal o incluso tu sistema puede ser particularmente difícil si tienes el hábito de descargar todo tipo de cosas de Internet.

A menudo puedes encontrar que has descargado el mismo mp3, pdf, epub (y todo tipo de extensiones de archivo) y lo has copiado en diferentes directorios. Esto puede causar que tus directorios se llenen de todo tipo de cosas duplicadas inútiles.

En este tutorial aprenderás a encontrar y eliminar archivos duplicados en Linux usando las herramientas de línea de comandos rdfind y fdupes.

Una nota de precaución – siempre ten cuidado con lo que borras en tu sistema, ya que esto puede conducir a una pérdida de datos no deseada. Si estás usando una herramienta nueva, primero inténtalo en un directorio de prueba donde borrar archivos no será un problema.

Rdfind – Encuentra archivos duplicados en Linux

Rdfind proviene de la búsqueda de datos redundantes. Es una herramienta gratuita que se utiliza para encontrar archivos duplicados en varios directorios. Utiliza la suma de comprobación y encuentra duplicados basados en archivos que no sólo contienen nombres.

Rdfind utiliza algoritmos para clasificar los archivos y detecta cuál de los duplicados es el archivo original y considera el resto como duplicados. Las reglas de clasificación son:

  • Si A se encontró al escanear un argumento de entrada antes que B, A está mejor clasificado.
  • Si A se encontró a una profundidad menor que B, A está mejor clasificado.
  • Si A fue encontrado antes que B, A está en una posición más alta.

La última regla se utiliza especialmente cuando se encuentran dos archivos en el mismo directorio.

Para instalar rdfind en Linux, usa el siguiente comando según tu distribución.

$ sudo apt-get install rdfind     [On Debian/Ubuntu]
$ sudo yum install epel-release && $ sudo yum install rdfind    [On CentOS/RHEL]
$ sudo dnf install rdfind         [On Fedora 22+]

Para ejecutar rdfind en un directorio simplemente escribe rdfind y el directorio de destino.

$ rdfind /home/user

Find-Duplicate-Files-in-Linux-1

Rdfind guardará los resultados en un archivo llamado results.txt ubicado en el mismo directorio desde el que ejecutaste el programa. El archivo contiene todos los archivos duplicados que rdfind ha encontrado. Puedes revisar el archivo y eliminar los archivos duplicados manualmente si lo deseas.

Otra cosa que puedes hacer es usar la opción -dryrun que te proporcionará una lista de duplicados sin realizar ninguna acción:

$ rdfind -dryrun true /home/user

Cuando encuentres los duplicados, puedes optar por reemplazarlos por enlaces duros.

$ rdfind -makehardlinks true /home/user

Y si quieres borrar los duplicados, puedes ejecutar.

$ rdfind -deleteduplicates true /home/user

Para comprobar otras opciones útiles de rdfind puedes usar el manual de rdfind con.

$ man rdfind 

Fdupes – Buscar archivos duplicados en Linux

Fdupes es otro programa que te permite identificar archivos duplicados en tu sistema. Es libre y de código abierto y está escrito en C. Utiliza los siguientes métodos para determinar los archivos duplicados:

  • Comparación de firmas de suma md5 parcial
  • Comparación de las firmas de suma md5 completa
  • Verificación de comparación byte a byte
  • Al igual que rdfind, tiene opciones similares:
  • Búsqueda recursiva
  • Excluir archivos vacíos
  • Muestra el tamaño de los archivos duplicados
  • Eliminar duplicados inmediatamente
  • Excluir archivos con diferentes propietarios

La sintaxis de Fdupes es similar a la de rdfind. Simplemente escribe el comando seguido del directorio que quieres escanear.

$ fdupes <dir>

Para buscar archivos recursivamente, deberás especificar la opción -r de esta manera.

$ fdupes -r <dir>

También puedes especificar varios directorios y especificar un directorio para que se busque recursivamente.

$ fdupes <dir1> -r <dir2>

Para que Fdupes calcule el tamaño de los archivos duplicados utiliza la opción -S.

$ fdupes -S <dir>

Para obtener información resumida sobre los archivos encontrados, utiliza la opción -m.

$ fdupes -m <dir>

Find-Duplicate-Files-in-Linux-2

Por último, si quieres eliminar todos los duplicados, utiliza la opción -d de la siguiente manera.

$ fdupes -d <dir>

Fdupes te preguntará cuál de los archivos encontrados deseas eliminar. Deberás introducir el número de archivo:

Find-Duplicate-Files-in-Linux-3

Una solución que definitivamente no se recomienda es usar la opción -N, lo que resultará en la preservación del primer archivo solamente.

$ fdupes -dN <dir>

Para obtener una lista de las opciones disponibles para usar con Fdupes, revisa la página de ayuda ejecutando.

$ fdupes -help

 

Fuente: Original | maslinux