Cómo detectar y eliminar archivos duplicados en Linux

Última actualización: 28/01/2026
Autor: Isaac
  • En Linux existen herramientas de consola (fdupes, rdfind, fclones, yadf) y gráficas (FSlint, dupeGuru, Czkawka) para localizar archivos duplicados por contenido.
  • Utilidades modernas como fclones y yadf permiten filtrar por tamaño, patrones y número de copias, además de ofrecer modos de simulación para evitar borrados accidentales.
  • Las aplicaciones gráficas facilitan revisar visualmente los resultados y seleccionar qué borrar, mover o enlazar sin necesidad de recordar opciones de terminal.
  • Es fundamental probar primero en rutas de prueba, usar modos dry-run y mantener copias de seguridad antes de eliminar duplicados en masa.

Cómo detectar archivos duplicados en Linux

Si usas Linux a diario, tarde o temprano te encontrarás con el típico aviso de falta de espacio en disco mientras tú jurarías que apenas guardas cosas. Copias de seguridad, descargas repetidas, fotos e imágenes RAW enormes, vídeos, documentos mil veces duplicados… todo va sumando hasta que el sistema empieza a ir justo de espacio.

La buena noticia es que en GNU/Linux tenemos un montón de utilidades, tanto de línea de comandos como con interfaz gráfica, para detectar y eliminar archivos duplicados de forma bastante segura. La mala noticia es que, si no sabes muy bien lo que haces, puedes borrar algo importante. Por eso vamos a ver todas las herramientas clásicas y modernas, cómo funcionan y qué precauciones deberías tomar.

Por qué merece la pena buscar archivos duplicados en Linux

Hoy en día los discos duros son relativamente baratos, pero los datos que guardamos no dejan de crecer y muchos de ellos son archivos muy pesados como fotos en RAW, vídeos en alta resolución y copias de seguridad enteras. Si además tienes varios clones del mismo fichero repartidos por distintas carpetas, el desperdicio de espacio puede ser brutal.

En entornos compartidos, como servidores de archivos de un colegio o una empresa, es muy frecuente que cada usuario haga su propia copia de documentos comunes, en lugar de usar enlaces simbólicos o duros para apuntar al archivo original. El resultado es un almacén lleno de duplicados, con el sistema pidiendo espacio a gritos.

Además del espacio, los duplicados también afectan a la organización. Es fácil acabar con varias versiones del mismo archivo en distintas rutas y no tener claro cuál es el original, cuál es la copia buena y cuál deberías eliminar. De ahí la importancia de contar con herramientas que miren el contenido de los archivos, no solo el nombre.

Enfoques para detectar duplicados: consola vs interfaz gráfica

En Linux podemos atacar el problema con utilidades para terminal o con aplicaciones gráficas. Las de consola como fdupes, rdfind, fclones o yadf se integran muy bien en scripts y flujos avanzados, y suelen ser más rápidas y flexibles a la hora de filtrar resultados.

Por otro lado, si lo que quieres es repasar tranquilamente tus fotos de un disco externo de 500 GB y decidir qué borrar sin miedo, es probable que te resulte mucho más cómodo usar interfaces gráficas como FSlint, dupeGuru, Czkawka, Krokiet o fclones-gui, donde los resultados se muestran en listas, con casillas para marcar y desmarcar.

fdupes: el clásico para encontrar duplicados desde la terminal

fdupes es una de las herramientas más veteranas y usadas para localizar ficheros duplicados en Linux desde la línea de comandos. Está escrita en C, es software libre y la encontrarás en los repositorios de prácticamente cualquier distribución.

Su metodología es bastante sólida: primero compara el tamaño de los archivos, luego calcula firmas MD5 parciales, después firmas MD5 completas y finalmente hace una comparación byte a byte para asegurarse de que dos archivos son idénticos. Esto evita falsos positivos basados únicamente en hashes o nombres.

En Debian, Ubuntu y derivados puedes instalarlo con:

sudo apt-get install fdupes

En distribuciones tipo Red Hat y derivados usarías:

sudo yum install fdupes

En Fedora (dnf) o Arch Linux tienes igualmente paquetes disponibles:

sudo dnf install fdupes
sudo pacman -S fdupes

Una vez instalado, el uso básico para listar duplicados dentro de un directorio, por ejemplo tu carpeta de descargas, es tan sencillo como:

fdupes ~/Descargas

Si quieres que el análisis sea recursivo e incluya todos los subdirectorios, añade la opción -r:

fdupes -r ~/Descargas

Para no tener en cuenta archivos vacíos que solo ensucian el listado, puedes utilizar:

fdupes -n <ruta del directorio>

Cuando te interese saber cuánta capacidad está desperdiciando tu sistema en duplicados, dispones de la opción -S, que muestra el tamaño de los archivos repetidos:

fdupes -S <ruta del directorio>

Y si necesitas un informe para tratarlo después con otras herramientas, siempre puedes redirigir la salida a un archivo de texto:

fdupes <ruta del directorio> > output.txt

Eliminar archivos duplicados con fdupes (con mucho cuidado)

fdupes no solo encuentra archivos clonados, también es capaz de ayudarte a limpiarlos. Con la opción -d el programa te irá preguntando, grupo por grupo, qué archivo quieres conservar y eliminará el resto:

fdupes -d <ruta del directorio>

Existe la posibilidad de automatizar aún más el proceso con parámetros como –delete, –noprompt o -N, que fuerzan el borrado de duplicados conservando solo el primer archivo encontrado, pero en la práctica es tremendamente arriesgado usarlos a ciegas.

Si quieres ir sobre seguro, un enfoque muy recomendable es utilizar fdupes únicamente para generar un listado de rutas de archivos duplicados y después moverlos a otra ubicación con mv. Así podrás revisar esa “cuarentena” antes de hacer el borrado definitivo:

  Cómo modificar el tiempo de espera del menú de arranque en Windows y Linux

fdupes -r <ruta> > duplicados.log

También conviene tener en cuenta la opción -m, que entrega un resumen con el número de ficheros duplicados y el espacio total que ocupan, algo muy útil para valorar cuánto vas a ganar con la limpieza:

fdupes -m <ruta del directorio>

Por último, mucho ojo con el parámetro -s, que hace que fdupes siga enlaces simbólicos (symlinks). Si lo combinas con opciones de borrado podrías acabar tocando archivos fuera de la ruta que pensabas analizar, porque los enlaces te llevan a otras zonas del sistema de ficheros.

rdfind: búsqueda de datos redundantes con enfoque inteligente

rdfind (redundant data find) es otra utilidad muy popular para detectar archivos duplicados en Linux. También es software libre y está disponible en los principales repositorios: apt, yum, dnf, pacman, etc.

Su filosofía es parecida a fdupes, pero incorpora un algoritmo de ordenación propio para decidir qué archivo considera “original” y cuáles son los duplicados. Las reglas de prioridad que utiliza son:

  • Si el archivo A se localizó mientras se analizaban los argumentos de entrada antes que B, entonces A tiene prioridad sobre B.
  • Si A está en un nivel de profundidad menor que B (más cerca del directorio raíz escaneado), A gana prioridad.
  • Si ambos criterios empatan, se queda con el que se encontró primero durante el escaneo.

Para instalarlo en Debian o Ubuntu bastaría con:

sudo apt-get install rdfind

En CentOS/RHEL suele requerir el repositorio EPEL:

sudo yum install epel-release
sudo yum install rdfind

En Fedora y Arch Linux también lo tienes empaquetado:

sudo dnf install rdfind
sudo pacman -S rdfind

El uso básico no tiene mucha ciencia. Para analizar tu directorio personal harías algo como:

rdfind /home/usuario

El programa escribirá un archivo llamado results.txt en el directorio desde el que lo ejecutaste, donde quedan recogidos todos los grupos de duplicados que ha detectado. Puedes revisar ese fichero para decidir qué hacer a mano o automatizar acciones posteriores.

Si quieres una primera pasada sin que se toque nada, la opción -dryrun es tu aliada. Genera el informe de duplicados pero sin aplicar cambios en el sistema de archivos:

rdfind -dryrun true /home/usuario

Una funcionalidad muy interesante de rdfind es que permite, en lugar de borrar, sustituir los archivos duplicados por enlaces duros (hardlinks), manteniendo una única copia física de los datos en disco:

rdfind -makehardlinks true /home/usuario

Si lo que quieres es directamente eliminar duplicados, puedes invocarlo así (de nuevo, mejor probar primero en una carpeta de pruebas):

rdfind -deleteduplicates true /home/usuario

fclones y yadf: herramientas modernas y muy rápidas

Además de los clásicos, en los últimos años han aparecido utilidades nuevas como fclones y yadf, escritas en Rust y con un rendimiento sobresaliente en discos grandes. Están pensadas para ser muy rápidas, teniendo en cuenta tamaños de archivo, hashes y comparaciones byte a byte solo cuando realmente hace falta.

fclones: agrupa, enlaza, mueve y desduplica

fclones se define como una herramienta para encontrar y eliminar archivos duplicados desde la terminal, pero su potencia va bastante más allá: identifica grupos de ficheros idénticos y permite distintas acciones sobre ellos, desde borrarlos hasta sustituirlos por enlaces o desduplicarlos usando capacidades copy-on-write del sistema de archivos.

En Arch Linux y derivados puedes instalarlo desde AUR con:

paru -S fclones

En otras distribuciones, su desarrollador recomienda compilarlo desde el código fuente usando cargo:

cargo install fclones

Tras la instalación es muy útil habilitar el autocompletado según tu shell, añadiendo una línea como estas a tu configuración:

  • Bash: eval "$(fclones complete bash)" en ~/.bashrc
  • Zsh: source <(fclones complete zsh) en ~/.zshrc
  • Fish: fclones complete fish | source en ~/.config/fish/config.fish

fclones divide las operaciones en varios subcomandos, lo que te obliga a separar claramente el momento en que detectas duplicados del momento en que los modificas o borras:

  • group: identifica grupos de archivos idénticos y los saca por la salida estándar.
  • remove: elimina archivos redundantes basándose en la salida generada previamente por group.
  • link: reemplaza los duplicados por «hard links» o enlaces simbólicos.
  • move: mueve duplicados a un directorio de destino que especifiques.
  • dedupe: en sistemas de archivos con copy-on-write, desduplica datos sin borrar archivos, compartiendo bloques internos.

Para localizar duplicados en el directorio actual, el comando más sencillo sería:

fclones group .

Si te interesa filtrar por tamaño, por ejemplo, solo archivos de más de 10 MB, añadirías:

fclones group -s 10M .

También puedes limitarte a aquellos ficheros que tengan más de un cierto número de copias, por ejemplo más de cinco apariciones:

fclones group . --rf-over 5

Y por supuesto admite patrones de nombre, ideal cuando trabajas con conjuntos de fotos o imágenes:

fclones group . --name '*.jpg' '*.png'

Una vez que tienes la lista de duplicados (por ejemplo en un archivo duplicados.txt), puedes aplicar distintas acciones. Por ejemplo, sustituir duplicados por enlaces duros sería:

fclones link <duplicados.txt

Si prefieres enlaces simbólicos:

fclones link -s <duplicados.txt

Para enviar todos los duplicados a otra carpeta de “cuarentena”:

  Contenedores con Podman: guía completa de pods y volúmenes

fclones move target_dir <duplicados.txt

Y para borrar directamente:

fclones remove <duplicados.txt

En todos estos casos también puedes encadenar comandos usando pipes, por ejemplo, para agrupar y a la vez eliminar:

fclones group . | fclones remove

Aunque esto funciona, es mucho más sensato incorporar la opción –dry-run para ver qué va a pasar sin tocar nada, por ejemplo:

fclones group . | fclones remove --dry-run

Ese modo de simulación te ahorrará más de un disgusto, sobre todo si trabajas en discos con datos importantes.

yadf: Yet Another Duplicate Finder

yadf (Yet Another Duplicate Finder) es otra herramienta moderna escrita en Rust para localizar duplicados, con una sintaxis bastante limpia y una estrategia de análisis por etapas: primero agrupa por tamaño, luego calcula hashes solo donde hace falta y, por último, confirma la igualdad con comparaciones byte a byte.

Su uso es realmente directo. Para encontrar duplicados en el directorio actual, basta con ejecutar:

yadf

Si quieres comparar dos rutas concretas, por ejemplo Documentos e Imágenes, podrías hacer:

yadf ~/Documents ~/Pictures

También se puede utilizar con profundidad 0 para comparar archivos concretos sin bajar a subdirectorios, algo útil cuando sospechas que dos ficheros concretos son el mismo:

yadf --depth 0 file1 file2

Para limitar la búsqueda al propio directorio sin descender, ajustas la profundidad:

yadf --depth 1

Un punto fuerte de yadf es que se lleva muy bien con otras utilidades como fd. Por ejemplo, podrías filtrar primero directorios o archivos por nombre y después pasar la lista a yadf:

  • Buscar directorios que contengan una «a» y luego buscar duplicados sin recursividad:
    fd --type d a | yadf --depth 1
  • Buscar archivos con «a» y comprobar si son duplicados:
    fd --type f a | yadf

En cuanto a filtros, tienes varias opciones interesantes:

  • Duplicados de al menos 100 MB: yadf --min 100M
  • Duplicados por debajo de 100 MB: yadf --max 100M
  • Solo archivos JPG: yadf --pattern '*.jpg'
  • Archivos cuyo nombre comience por «g»: yadf --regex '^g'
  • Archivos con más de 10 copias: yadf --rfactor over:10
  • Archivos con menos de 10 copias: yadf --rfactor under:10
  • Archivos únicos (sin duplicados): yadf --rfactor equal:1

Además permite formatear la salida para integrarla en otros scripts o herramientas. Según pruebas del propio autor, yadf suele ser ligeramente más rápido que fclones en determinados escenarios, aunque conviene que hagas tus propios benchmarks en tu sistema y con tus datos.

Herramientas gráficas para encontrar duplicados en Linux

Si la terminal no es lo tuyo o si estás lidiando con colecciones enormes de fotos y quieres ir viendo miniaturas antes de borrar nada, lo más cómodo es recurrir a aplicaciones con interfaz gráfica. En el ecosistema Linux hay varias muy maduras.

FSlint: interfaz sencilla y versión CLI incluida

FSlint es una herramienta veterana para localizar y limpiar «pelusa» en el sistema de archivos: duplicados, directorios vacíos, archivos temporales, enlaces simbólicos rotos, binarios obsoletos y otras cosillas que sobran.

Está en los repositorios de muchas distribuciones. En Ubuntu, por ejemplo, puedes instalarlo desde el Centro de software o por terminal con:

sudo apt-get install fslint

Al abrir la aplicación gráfica, verás que por defecto se selecciona el panel de «Duplicados» y se marca tu directorio personal como ruta de búsqueda inicial. Solo tienes que pulsar en «Buscar» para que FSlint escanee la carpeta y te muestre una lista de archivos repetidos.

Desde esa lista puedes marcar qué elementos borrar, fusionar o tratar de otra forma. Un doble clic te permite previsualizar un archivo antes de eliminarlo, algo muy útil con fotos y documentos importantes.

FSlint también incluye una parte de consola que, eso sí, no está diseñada para invocarse de forma directa como un binario en el PATH, sino como un script en su propia ruta:

/usr/share/fslint/fslint/fslint carpeta

Este comando se limita a listar duplicados y deja en tus manos la acción posterior (borrar, mover, etc.). Si necesitas ver todas las opciones, siempre puedes tirar de la ayuda:

/usr/share/fslint/fslint/fslint --help
man fslint

dupeGuru: multiplataforma, rápido y bastante seguro

dupeGuru es otra aplicación gráfica muy conocida para localizar ficheros duplicados en Linux, Windows y macOS. Puede escanear tanto por nombre como por contenido y soporta un algoritmo de coincidencia difusa que detecta nombres parecidos, ideal cuando tienes miles de canciones o fotos con nombres casi idénticos.

Su interfaz es bastante clara: seleccionas una o varias carpetas para escanear, eliges el modo (archivos genéricos, música o imágenes) y dejas que haga su trabajo. Una vez terminado, te muestra grupos de duplicados donde tú decides qué conservar y qué eliminar marcando casillas.

En Debian, Ubuntu y derivados puedes instalarlo desde un PPA mantenido por el proyecto:

sudo add-apt-repository ppa:dupeguru/ppa
sudo apt-get update
sudo apt-get install dupeguru

En Arch Linux está disponible en los repositorios de la distribución:

sudo pacman -S dupeguru

Una de las grandes ventajas de dupeGuru es que está diseñado para minimizar el riesgo de borrar cosas que no deberías, aunque, como siempre, el último clic lo haces tú. Por eso sigue siendo imprescindible tener copias de seguridad y revisar bien lo que marcas.

Czkawka y Krokiet: motor moderno con dos interfaces diferentes

Czkawka es una aplicación moderna escrita en Rust que busca y elimina duplicados, archivos vacíos, archivos temporales, ficheros enormes y otros elementos prescindibles. Es multiplataforma y su objetivo principal es ser rápida y eficiente.

  Cómo instalar plugins en GIMP: guía completa para Linux y Windows

Internamente utiliza el mismo motor que Krokiet, otra interfaz gráfica que apuesta por un diseño más ligero y rápido. Czkawka se apoya en GTK y ofrece una interfaz más completa, mientras que Krokiet emplea Slint y simplifica un poco la presentación, a cambio de menos consumo de recursos.

En ambos casos el flujo de trabajo es similar a lo que hemos visto con otras herramientas gráficas: eliges carpetas a escanear, lanzas la búsqueda de duplicados y luego trabajas con un listado agrupado en el que vas marcando qué quedarse y qué eliminar. Es mucho más cómodo que recordar opciones de consola si solo quieres limpiar de vez en cuando.

Si buscas algo activo y con un desarrollo bastante movido, Czkawka es una de las opciones más recomendables; si prefieres ligereza, Krokiet encaja muy bien en equipos modestos.

fclones-gui: una cara sencilla para fclones

Para quienes han probado fclones pero prefieren no pelearse con la línea de comandos, existe fclones-gui, una interfaz gráfica muy simple que aprovecha el motor de fclones. No expone todas las opciones avanzadas, pero sí las más habituales.

El funcionamiento no tiene misterio: seleccionas el directorio a analizar, ajustas las opciones básicas de búsqueda y pulsas en el botón para encontrar duplicados. Al terminar, podrás elegir qué archivos tratar y qué acción realizar (borrar, mover, enlazar, etc.).

El único inconveniente es que el ritmo de desarrollo de fclones-gui parece más pausado que el de otras alternativas gráficas como Czkawka o Krokiet, por lo que, si valoras mucho el mantenimiento continuado, quizá te convenga optar por estas últimas. Aun así, si fclones-gui cubre tus necesidades, es una opción perfectamente válida.

Soluciones «artesanales» con find, sort, uniq y md5sum

Si te gusta hacer las cosas a mano o no quieres depender de herramientas adicionales, también puedes combinar utilidades clásicas de Unix como find, md5sum, sort y uniq para localizar archivos duplicados. La idea básica es generar un hash para cada archivo, ordenar por ese hash y luego quedarte con las entradas que se repiten.

Por ejemplo, podrías recorrer tu directorio personal generando sumas MD5 de cada fichero y volcando el resultado a un archivo:

find /home/usuario -type f -print0 \
| xargs -0 md5sum \
| sort > /tmp/archivos-duplicados.txt

Después, con sort y uniq, puedes localizar hashes que aparecen más de una vez, lo que indica grupos de archivos con el mismo contenido. A partir de ahí ya es cuestión de procesar la lista para decidir qué hacer con cada ruta.

Un detalle curioso es que, si haces un echo de un hash MD5, notarás que parece tener 33 bytes en lugar de 32. Eso se debe a que echo añade un salto de línea al final, por lo que para medir de verdad el tamaño deberías prescindir de ese retorno de carro (por ejemplo con printf).

Este enfoque «artesano» no ofrece la comodidad ni las funciones avanzadas de herramientas especializadas, pero resulta muy útil para entender cómo funcionan internamente muchos detectores de duplicados y para montar scripts muy específicos adaptados a tus necesidades.

Recomendaciones de uso y buenas prácticas al borrar duplicados

Independientemente de la herramienta que elijas, hay una serie de pautas que merece la pena seguir para no llevarte un susto borrando archivos que en realidad necesitabas:

  • Trabaja primero en directorios de prueba o en copias de tus datos hasta que te sientas cómodo con la herramienta.
  • Siempre que exista, utiliza el modo dry-run o de simulación (fclones, rdfind, etc.) antes de ejecutar acciones destructivas.
  • Cuando sea posible, opta primero por mover duplicados a una carpeta de cuarentena en lugar de borrarlos directamente.
  • Evita automatizar el borrado con opciones como –noprompt o -N si no has revisado bien el funcionamiento; pueden ser muy agresivas.
  • Ten precaución con enlaces simbólicos (-s, –symlinks), ya que pueden hacer que termines eliminando archivos fuera del árbol de directorios que creías estar limpiando.
  • Mantén siempre una copia de seguridad reciente antes de hacer limpiezas grandes en discos que contengan datos importantes.

Encontrar y eliminar archivos duplicados en Linux no es complicado si conoces las herramientas adecuadas: desde clásicos como fdupes, rdfind y FSlint hasta opciones más modernas como fclones, yadf, Czkawka, Krokiet o dupeGuru, tienes un arsenal enorme para liberar espacio, ordenar tus carpetas y reducir el caos de copias repetidas. Escoge consola o interfaz gráfica según te resulte más cómodo, combina filtros de tamaño y patrones de nombre para afinar los resultados y, sobre todo, tómate tu tiempo para revisar qué vas a borrar; con un poco de cuidado, tu sistema respirará mucho más ligero sin que tus datos importantes corran riesgos innecesarios.