Volver a la página principal
lunes 23 septiembre 2024
69

Cómo encontrar archivos duplicados por su tamaño y hash en Linux

En Linux, puedes encontrar archivos duplicados comparando tanto su tamaño como su hash (una firma única generada por el contenido del archivo). Esto asegura que los archivos sean realmente idénticos, incluso si tienen nombres diferentes. A continuación, te mostramos cómo hacerlo utilizando herramientas comunes de línea de comandos.

1. Uso de find + md5sum + sort + uniq

Este método combina varios comandos de Linux para encontrar archivos duplicados en un directorio específico.

Paso 1: Buscar archivos por su tamaño

Primero, puedes usar el comando find para listar todos los archivos en un directorio y luego combinarlo con ls -l para mostrar el tamaño:

find /ruta/al/directorio -type f -exec ls -l {} \; | awk '{print $5, $9}' | sort -n

Este comando:

  • find: Busca todos los archivos (-type f) en el directorio especificado.
  • ls -l: Muestra el tamaño y nombre del archivo.
  • awk: Extrae el tamaño del archivo y su ruta.
  • sort -n: Ordena los archivos por tamaño en orden numérico.

Paso 2: Generar el hash de los archivos

Una vez que tengas los archivos ordenados por tamaño, genera el hash (por ejemplo, md5sum) para comparar su contenido. El siguiente comando generará hashes para todos los archivos en un directorio:

find /ruta/al/directorio -type f -exec md5sum {} \; | sort

Este comando genera el hash MD5 para cada archivo encontrado y lo ordena alfabéticamente, permitiendo ver archivos con hashes idénticos.

Paso 3: Filtrar archivos duplicados

Para identificar los archivos con el mismo hash, usa uniq para filtrar los duplicados:

find /ruta/al/directorio -type f -exec md5sum {} \; | sort | uniq -w32 -d

Este comando:

  • uniq -w32 -d: Filtra los duplicados basándose en los primeros 32 caracteres (el hash MD5) y muestra solo aquellos que son duplicados.

2. Uso de fdupes

Una alternativa más sencilla es usar la herramienta fdupes, que está diseñada específicamente para encontrar archivos duplicados.

Instalación de fdupes

  • Debian/Ubuntu:
sudo apt install fdupes
  • Fedora/CentOS:
sudo yum install fdupes
  • Arch Linux:
sudo pacman -S fdupes

Uso de fdupes

Para buscar archivos duplicados en un directorio:

fdupes -r /ruta/al/directorio
  • -r: Realiza la búsqueda de manera recursiva en todos los subdirectorios.

Si deseas eliminar los duplicados, puedes usar el siguiente comando:

fdupes -r -d /ruta/al/directorio

Este comando te permitirá interactuar y seleccionar qué archivos eliminar. Usa con precaución, ya que no se puede deshacer fácilmente.

Etiquetas:
linux
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer