Ver destacados

Cómo encontrar y borrar archivos duplicados en Linux

Tutorial para poder buscar y eliminar los archivos duplicados que tengas en una distribución de Linux.
Escrito por y 1 usuario más.
20.9K Visitas  |  Publicado nov 05 2018 18:47
Favorito
Compartir
Comparte esta pagina a tus Amigos y Contactos usando las siguientes Redes Sociales


A diario estamos descargando, creando y editando diversos tipos de archivos en nuestro sistema operativo, en este caso puntual hablamos de Linux, y uno de los fallos comunes es que frecuentemente podemos contar con diversos archivos duplicados que, no solo ocupan un espacio extra en el disco duro, sino que puede llegar a ser un factor de confusión al momento de abrir y editar archivos.

 

En muchas ocasiones tenemos en nuestros equipos de escritorio o servidores diversos archivos, independiente del formato que sean, duplicados y no lo sabemos. Esto genera ocupar espacio de manera innecesaria y poder trabajar con un archivo equivocado ya que podemos editar uno y luego abrir el otro, etc. Una forma práctica para llevar una mejor organización de nuestro entorno de trabajo es detectando y eliminado dichos archivos duplicados para que de esta forma sea posible hacer uso de un solo archivo único.

 

Merece la pena realizar esta tarea no solo para poder borrar los duplicados, sino también para realizar búsquedas donde podamos eliminar y borrar los archivos que no queramos más pero tenemos repetidos por diferentes partes del sistema operativo Linux. Da igual la versión como puede ser en Fedora, Ubuntu, Debian, CentOS entre muchas otras.

 

Ya vimos en su día cómo encontrar archivos duplicados en Windows, aquí nos centramos en ambientes Linux, donde contamos con herramientas tanto a nivel gráfico como de línea de comandos, que nos ayudarán a encontrar estos archivos y eliminar los que consideremos que no son útiles.

 

Libera espacio en tu disco detectando archivos y carpetas de gran tamaño en Linux que ocupan mucho espacio.

 

Solvetic explicará la forma para lograr detectar y eliminar archivos duplicados en Linux de una forma sencilla pero funcional.

 

Qué es la utilidad Rdfind
Rdfind es una herramienta de línea de comandos que ha sido desarrollada para detectar archivos duplicados en el directorio. Su uso puede ser aplicado para comprimir directorios de copia de seguridad o para encontrar archivos duplicados de forma simple, esta utilidad compara archivos en función de su contenido, pero no en sus nombres de archivo ya que está basada en la suma de comprobación. Rdfind hace uso de un algoritmo con el fin de clasificar los archivos y así detectar cuál de los duplicados es el original y de este modo considerar el resto como duplicados. Las reglas de uso de Rdfind son:
  • Si se encontró A mientras se escaneaba un argumento de entrada anterior a B, A tiene una clasificación más alta.
  • Si se encontró A a una profundidad inferior a B, A tiene una clasificación más alta.
  • Si se encontró A antes que B, A tiene una clasificación más alta.

 

Qué es Algoritmo de Rdfind
Rdfind, como hemos mencionado, hace uso del siguiente algoritmo donde N es el número de archivos a buscar y el esfuerzo requerido es O (Nlog (N)). Rdfind ordena los archivos en inodos antes de la lectura del disco, de modo que este proceso es rápido y solo lee datos del disco cuando sea requerido. El algoritmo gestiona las siguientes secuencias:
  • Se crea un bucle sobre cada argumento en la línea de comando, se asigna a cada argumento un número de prioridad, en orden creciente.
  • Para cada argumento, se lista el contenido del directorio de forma recursiva y se asigna a la lista de archivos.
  • Rdfind asigna un número de profundidad de directorio, comenzando en 0 para cada argumento.
  • Si el argumento de entrada es un archivo, este se agregará a la lista de archivos.
  • Luego se recorre la lista y se descubren los tamaños de todos los archivos.
  • Si el indicador “-removeidentinode” es verdadero se eliminan los elementos de la lista que ya han sido agregados, según la combinación de número de dispositivo y inodo.
  • Se ordenan los archivos por tamaño, luego se eliminan los archivos de la lista, que tienen tamaños únicos.
  • Se ordena por dispositivo e inodo lo cual acelera la lectura de archivos).
  • Se eliminan los archivos de la lista que tengan el mismo tamaño, pero diferentes primeros bytes.
  • Se ejecuta la suma de comprobación para cada archivo.
  • Solo se conservan los archivos en la lista con el mismo tamaño y suma de comprobación. Estos son los duplicados.
  • Se ordenar la lista por tamaño, número de prioridad y profundidad. El primer archivo de cada conjunto de duplicados se considera el original de forma predeterminada.
  • Si marca "-makeresultsfile true", se imprime el archivo de resultados (predeterminado).
  • Si el indicador es "-deleteduplicates true", se eliminarán los archivos duplicados.
  • Si el indicador es "-makesymlinks true", se procede a reemplazar los duplicados con un enlace simbólico al original.
  • Si el resultado es "-makehardlinks true", se procede a reemplazar los duplicados con enlace al original.

 

 


1. Buscar archivos duplicados con la utilidad Rdfind en Linux

 

Paso 1

Para instalar Rdfind en Linux podemos ejecutar alguno de los siguientes comandos:
sudo apt install rdfind (Debian/Ubuntu/Mint)
sudo yum install epel-release && $ sudo yum install rdfind (CentOS/RHEL)
sudo dnf install rdfind (Fedora)

 

Paso 2

Una vez descargado e instalado Rdfind, vamos a ejecutarlo en un directorio simple de la siguiente manera:
rdfind /home/Solvetic

 

Paso 3

Allí podemos ver que se detecta la cantidad de archivos en dicho directorio y se indica si han sido eliminados o no archivos duplicados. La utilidad Rdfind guardará los resultados en un archivo results.txt ubicado en el mismo directorio desde donde ejecutó el programa, podremos ver su contenido usando cat:
cat results.txt

 

 

Paso 4

Una tarea extra para usar con rdfind es usar el parámetro "-dryrun" el cual proporcionará una lista de duplicados sin realizar ninguna acción sobre ellos:
rdfind -dryrun true /home/Solvetic

 

 

Paso 5

En caso de detectar duplicados, es posible reemplazarlos con hardlinks así.
rdfind -makehardlinks true /home/user
Paso 6

Para eliminar los duplicados debemos ejecutar lo siguiente:
rdfind -deleteduplicates true /home/user
Paso 7

para acceder a la ayuda de Rdfind usaremos el siguiente comando:
man rdfind

2. Buscar archivos duplicados con la utilidad Fdupes en Linux


Otra de las opciones que tenemos en Linux para validar aquellos archivos duplicados es Fdupes. Es una herramienta de línea de comandos que nos permite observar detalladamente que archivos tenemos duplicados en el sistema. Fdupes es un programa que ha sido desarrollado para identificar o eliminar archivos duplicados alojados dentro de directorios específicos en Linux, es de código abierto y gratuito y está escrito en C.

 

Características de Fdupes
Fdupes hace uso de los siguientes métodos para determinar archivos duplicados en los directorios:
  • Comparando firmas md5sum parciales.
  • Comparando todas las firmas de md5sum.
  • Verificación de comparación byte a byte.

 

Al usar Fdupes tendremos opciones de uso como:

  • Búsqueda recursiva.
  • Excluir archivos vacíos.
  • Desplegar el tamaño de los archivos duplicados.
  • Eliminar duplicados inmediatamente.
  • Excluir archivos con diferente propietario.

 

 

Paso 1

Por defecto esta herramienta no se encuentra instalada por lo cual debemos ingresar el siguiente comando para su instalación. Para instalar Fdupes ejecutaremos el siguiente comando:
sudo apt install fdupes

 

 

Paso 2

Una vez descargado, podremos ejecutar la siguiente línea para una búsqueda simple. Allí se desplegarán los archivos duplicados.
fdupes /ruta a buscar

 

 

Paso 3

Para ejecutar una búsqueda recursiva usaremos la siguiente línea:
fdupes -r /ruta a buscar

 

Paso 4

Será posible especificar varios directorios y especificar un directorio para buscar recursivamente de la siguiente forma:
fdupes <dir1> -r <dir2>
Paso 5

Si deseamos que Fdupes calcule el tamaño de los archivos duplicados, usaremos la opción -S:
fdupes -S <dir>

 

Paso 6

Para recopilar información resumida sobre los archivos encontrados usaremos la opción -m:
fdupes -m <dir>

 

Paso 7

En caso de desear borrar todos los duplicados ejecutaremos lo siguiente:
fdupes -d <dir>
Paso 8

Si deseamos acceder a la ayuda de la utilidad ejecutamos:
fdupes -help
Paso 9

Algunas de las opciones de uso generales son:

 

Para cada directorio seleccionado, acceder a sus subdirectorios
-r –recurse 

 

Activa la búsqueda recursiva
-R --recurse

 

Crear enlaces simbólicos
-s –symlinks

 

Cuando dos o más archivos apuntan al mismo objetivo, se tratan como no duplicados
-H –hardlinks

 

Excluir archivos de longitud cero
-n –noempty 

 

Excluir archivos ocultos
-A –nohidden 

 

Mostrar el tamaño de los archivos duplicado
-S –size 

 

Eliminar los archivos seleccionados
-d –delete 

 

Ocultar el -q –quiet
-q –quiet

 

Seleccionar el orden de clasificación para la salida y la eliminación por archivo
-o --*****=BY 

 

Opciones de eliminación de archivos de registro a LOGFILE
-l --log=LOGFILE 

 

Desplegar la versión de Fdupes
-v –version

 

Desplegar el mensaje de ayuda
 -h – help

 

 

 


3. Buscar archivos duplicados con la utilidad FSlint en Linux


Otra que vamos a utilizar es FSlint, la cual viene por defecto en las diversas ditros de Linux tales como Ubuntu, Debian, Fedora, etc. Para saber más acerca de FSlint podemos visitar el siguiente enlace:

 

 Flint Oficial

 

Paso 1

Podemos buscar FSlint desde el menú Actividades para su uso.

 

 

Paso 2

Una vez abierto es necesario que instalemos la aplicación, para ello basta con pulsar en el botón Install e iniciará el proceso de instalación de la utilidad.

 

 

Paso 3

Una vez la herramienta ha sido instalada procedemos a su ejecución y veremos el siguiente entorno:

 

 

Paso 4

Para iniciar el proceso de búsqueda de todos los archivos duplicados pulsaremos el botón “Buscar” ubicado en la parte inferior y el resultado será similar a este. Allí podremos seleccionar aquellos archivos que no son necesario y eliminarlos pulsando el botón Borrar. La herramienta FSlint también puede ser usada desde la terminal en Ubuntu 16.

 

 

Paso 5

Si deseamos instalar la herramienta desde la terminal ingresaremos el comando:
sudo apt-get install fslint

 

 

Paso 6

Una vez esté instalado FSlint ingresaremos los siguientes comandos para usar FSlint. Podemos ver que se despliegan todos los archivos que tenemos duplicados en el Sistema.
cd /usr/share/fslint/fslint (Esta es la ruta por defecto en Ubuntu)
./fslint /Ruta a buscar archivos

 

 

Nota importante
Ninguna de estas herramientas borra los archivos duplicados, solamente nos despliega cuáles son y nosotros debemos realizar esta tarea de forma manual.

 

Podemos ver que contamos con dos opciones prácticas para detectar y eliminar archivos duplicados en ambientes Linux y así administrar mejor el espacio y los archivos a usar.

 

Te explicamos diferentes formas para saber cómo borrar de forma segura y permanente archivos y directorios en Linux

¿Te ayudó este Tutorial?

Ayuda a mejorar este Tutorial!
¿Quieres ayudarnos a mejorar este tutorial más? Puedes enviar tu Revisión con los cambios que considere útiles. Ya hay 1 usuario que han contribuido en este tutorial al enviar sus Revisiones. ¡Puedes ser el próximo!