4 herramientas útiles para buscar y eliminar archivos duplicados en Linux


Organizar su directorio personal o incluso su sistema puede ser particularmente difícil si tiene el hábito de descargar todo tipo de cosas de 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 diferentes directorios. Esto puede hacer que sus directorios se llenen de todo tipo de cosas duplicadas inútiles.

En este tutorial, aprenderá cómo encontrar y eliminar archivos duplicados en Linux usando las herramientas de línea de comandos rdfind y fdupes, así como también usando herramientas GUI llamadas DupeGuru y FSlint.

Una nota de precaución: siempre tenga cuidado con lo que elimina en su sistema, ya que esto puede provocar una pérdida de datos no deseada. Si está utilizando una nueva herramienta, primero pruébela en un directorio de prueba donde eliminar archivos no será un problema.

1. Rdfind: encuentra archivos duplicados en Linux

Rdfind proviene de la búsqueda de datos redundantes. Es una herramienta gratuita que se utiliza para buscar archivos duplicados en varios directorios o dentro de ellos. Utiliza 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 clasificación son:

  • Si se encontró A mientras se escaneaba un argumento de entrada antes que B, A tiene una clasificación más alta.
  • Si A se encontró a una profundidad menor que B, A tiene una clasificación más alta.
  • Si A se encontró antes que B, A tiene una clasificación más alta.

La última regla se utiliza especialmente 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+]
$ sudo pacman -S rdfind   [On Arch Linux]

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 puede hacer es usar la opción -dryrun que proporcionará una lista de duplicados sin realizar ninguna acción:

$ rdfind -dryrun true /home/user

Cuando encuentre los duplicados, puede optar por reemplazarlos con enlaces físicos.

$ rdfind -makehardlinks true /home/user

Y si desea eliminar los duplicados puede ejecutar.

$ rdfind -deleteduplicates true /home/user

Para comprobar otras opciones útiles de rdfind, puede utilizar el manual de rdfind con.

$ man rdfind 

2. Fdupes: busque archivos duplicados en Linux

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

  • Comparación de firmas md5sum parciales
  • Comparación de firmas completas de md5sum
  • verificación de comparación byte a byte

Al igual que rdfind, tiene opciones similares:

  • Buscar de forma recursiva
  • Excluir archivos vacíos
  • Muestra el tamaño de los archivos duplicados
  • Elimine los duplicados inmediatamente
  • Excluya archivos con un propietario diferente

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

$ sudo apt-get install fdupes     [On Debian/Ubuntu]
$ sudo yum install epel-release && $ sudo yum install fdupes    [On CentOS/RHEL]
$ sudo dnf install fdupes         [On Fedora 22+]
$ sudo pacman -S fdupes   [On Arch Linux]

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, tendrá que especificar el -r una opción como esta.

$ fdupes -r <dir>

También puede especificar varios directorios y especificar un directorio para buscar de forma recursiva.

$ fdupes <dir1> -r <dir2>

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

$ fdupes -S <dir>

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

$ fdupes -m <dir>

Finalmente, si desea eliminar todos los duplicados, use -d una opción como esta.

$ fdupes -d <dir>

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

Una solución que definitivamente no se recomienda es usar la opción -N 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, revise la página de ayuda ejecutando.

$ fdupes -help

3. dupeGuru - Encuentra archivos duplicados en Linux

dupeGuru es una herramienta multiplataforma y de código abierto que se puede utilizar para encontrar archivos duplicados en un sistema Linux. La herramienta puede escanear nombres de archivos o contenido en una o más carpetas. También le permite encontrar el nombre de archivo que es similar a los archivos que está buscando.

dupeGuru viene en diferentes versiones para plataformas Windows, Mac y Linux. Su función de algoritmo de coincidencia aproximada rápida le ayuda a encontrar archivos duplicados en un minuto. Es personalizable, puede extraer los archivos duplicados exactos que desee y eliminar los archivos no deseados del sistema.

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

--------------- On Debian/Ubuntu/Mint --------------- 
$ sudo add-apt-repository ppa:dupeguru/ppa
$ sudo apt-get update
$ sudo apt-get install dupeguru
--------------- On Arch Linux --------------- 
$ sudo pacman -S dupeguru

4. FSlint - Buscador de archivos duplicados para Linux

FSlint es una utilidad gratuita que se utiliza para encontrar y limpiar varias formas de pelusa en un sistema de archivos. También informa archivos duplicados, directorios vacíos, archivos temporales, nombres duplicados/conflictivos (binarios), enlaces simbólicos incorrectos y muchos más. Tiene modos de línea de comandos y GUI.

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

$ sudo apt-get install fslint     [On Debian/Ubuntu]
$ sudo yum install epel-release && $ sudo yum install fslint    [On CentOS/RHEL]
$ sudo dnf install fslint         [On Fedora 22+]
$ sudo pacman -S fslint   [On Arch Linux]

Estas 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íelo en la sección de comentarios a continuación.