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.
find
+ md5sum
+ sort
+ uniq
Este método combina varios comandos de Linux para encontrar archivos duplicados en un directorio específico.
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:
-type f
) en el directorio especificado.
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.
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:
fdupes
Una alternativa más sencilla es usar la herramienta fdupes
, que está diseñada específicamente para encontrar archivos duplicados.
fdupes
sudo apt install fdupes
sudo yum install fdupes
sudo pacman -S fdupes
fdupes
Para buscar archivos duplicados en un directorio:
fdupes -r /ruta/al/directorio
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.
Jorge García
Fullstack developer