2 herramientas útiles para encontrar y eliminar archivos duplicados en Linux


Organizar su directorio de inicio o incluso su sistema puede ser particularmente difícil si tiene la costumbre de descargar todo tipo de cosas desde Internet.

A menudo, es posible que haya descargado el mismo mp3, pdf, epub (y todo tipo de extensiones de archivo) y lo haya copiado en directorios diferentes. Esto puede hacer que sus directorios se desordenen con todo tipo de cosas duplicadas inútiles.

En este tutorial, aprenderá cómo encontrar y eliminar archivos duplicados en Linux utilizando las herramientas de línea de comandos rdfind y fdupes .

Una nota de precaución: siempre tenga cuidado con lo que elimine en su sistema, ya que esto puede provocar la pérdida de datos no deseados. Si está utilizando una nueva herramienta, primero inténtelo en un directorio de prueba donde eliminar 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 o dentro de ellos. Utiliza la suma de comprobación y encuentra duplicados basados ​​en archivos que no solo contienen nombres.

Rdfind utiliza un algoritmo para clasificar los archivos y detecta cuál de los duplicados es el archivo original y considera el resto como duplicados. Las reglas de ranking son:

  • If A was found while scanning an input argument earlier than B, A is higher ranked.
  • If A was found at a depth lower than B, A is higher ranked.
  • If A was found earlier than B, A is higher ranked.

La última regla se usa particularmente cuando se encuentran dos archivos en el mismo directorio.

Para instalar rdfind en Linux, use el siguiente comando según su distribución de Linux.

$ 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 escriba rdfind y el directorio de destino. Aquí hay un ejemplo:

$ rdfind /home/user

Como puede ver, rdfind guardará los resultados en un archivo llamado results.txt ubicado en el mismo directorio desde donde ejecutó el programa. El archivo contiene todos los archivos duplicados que ha encontrado rdfind. Puede revisar el archivo y eliminar los archivos duplicados manualmente si lo desea.

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

$ rdfind -dryrun true /home/user

Cuando encuentre los duplicados, puede elegir reemplazarlos con enlaces duros.

$ rdfind -makehardlinks true /home/user

Y si desea eliminar los duplicados puede ejecutar.

$ rdfind -deleteduplicates true /home/user

Para ver otras opciones útiles de rdfind puede usar el manual rdfind con.

$ man rdfind 

Fdupes - Escanear en busca de archivos duplicados en Linux

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

  • Comparing partial md5sum signatures
  • Comparing full md5sum signatures
  • Byte-by-byte comparison verification

Al igual que rdfind tiene opciones similares:

  • Search recursively
  • Exclude empty files
  • Shows size of duplicate files
  • Delete duplicates immediately
  • Exclude files with different owner

La sintaxis de Fdupes es similar a rdfind . Simplemente escriba el comando seguido del directorio que desea escanear.

$ fdupes <dir>

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

$ fdupes -r <dir>

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

$ fdupes <dir1> -r <dir2>

Para que los fdupes calculen el tamaño de los archivos duplicados, use la opción -S .

$ fdupes -S <dir>

Para recopilar información resumida sobre los archivos encontrados, use la opción -m .

$ fdupes -m <dir>

Finalmente, si desea eliminar todos los duplicados, use la opción -d de esta manera.

$ fdupes -d <dir>

Fdupes le preguntará cuál de los archivos encontrados debe eliminar. Deberá ingresar el número de archivo:

Una solución que definitivamente no se recomienda es usar la opción -N que dará como resultado la conservación del primer archivo solamente.

$ fdupes -dN <dir>

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

$ fdupes -help

Rdfind y fdupes son herramientas muy útiles para encontrar archivos duplicados en su sistema Linux, pero debe tener mucho cuidado al eliminar dichos archivos.

Si no está seguro de si necesita un archivo o no, sería mejor crear una copia de seguridad de ese archivo y recordar su directorio antes de eliminarlo. Si tiene alguna pregunta o comentario, envíelos en la sección de comentarios a continuación.