Linux – Script Bash para encontrar ficheros duplicados con diferentes nombres en el mismo directorio

Algunas veces tenemos un directorio lleno de ficheros repetidos con nombres distintos.

Por ejemplo: dentro de un directorio tipo maildir después de algún problema podemos tener un montón de ficheros repetidos con nombres diferentes: el mismo mensaje de e-mail varias veces.

Encontrar ficheros duplicados con diferentes nombres en el mismo directorio usando Bash

Este script muestra solo los ficheros que están mas de una vez y cuantas veces están repetidos:

md5sum *| sort |uniq -w33 -D

Podemos añadir este script en nuestro fichero .bash_aliases file para tenerlo siempre disponible:

alias EncontrarFicherosDuplicados='md5sum *| sort |uniq -w33 -D'

md5sum obtiene la suma de control MD5 (128-bit) de cada fichero, los cual nos sirve para identificar ficheros repetidos. Los ficheros que tengan igual suma de control son iguales aunque tengan el nombre distinto.

El formato tiene 2 columnas: La primera columna tiene 32 caracteres con la suma de control y la segunda columna con el nombre Ejemplo:

a4d29c43765b0840b5713cb2029c79b2 1161600399.10652.uPsdZ:2,S

Con sort agrupamos los ficheros repetidos según su suma de control y con uniq -w33 -D comparamos solo esa suma de control (los 32 caracteres y mostramos por pantalla la tupla suma de control + nombre de fichero de ficheros repetidos

Un resultado tipico podria ser:

1ca439f3907b8552a2391a4214b1da9e 1161600477.10652.vA5ww:2,S
1ca439f3907b8552a2391a4214b1da9e 1161600484.10652.RgsF6:2,S

Esto significa que tenemos 1 fichero repetido 2 veces con la suma de control igual a :

1ca439f3907b8552a2391a4214b1da9e

Y que los ficheros son:

1161600477.10652.vA5ww:2,S
1161600484.10652.RgsF6:2,S

One thought on “Linux – Script Bash para encontrar ficheros duplicados con diferentes nombres en el mismo directorio

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">