Listar ficheros duplicados
Con este mini script podemos listar los ficheros duplicados de cualquier directorio y recursivos:
find DIRECTORIO_PADRE -type f -print0 | xargs -0 -n1 md5sum | sort --key=1,32 | uniq -w 32 -d --all-repeated=separate | cut -c35-
Explicación:
- find DIRECTORIO_PADRE -type f -print0
Busca todos los ficheros (-type f) desde el directorio DIRECTORIO_PADRE y los muestra con el path completo terminado con un carácter null al final(-print0). - xargs -0 -n1 md5sum
pasa cada uno de los fichero encontrados (terminados con null -0 y como máximo 1 -n1) al comando md5sum y devuelve el checksum y el nombre del fichero. - sort –key=1,32
Ordena el listado usando los primeros 32 caracteres que es el checksum del MD5. - uniq -w 32 -d –all-repeated=separate
Muestra SOLO los duplicados (-d), ignorando los únicos, para ello solo compara los 32 primeros caracteres (-w 32) y agrupa los ficheros duplicados en grupos separados por una línea en blanco (–all-repeated=separate) - cut -c35-
Corta los 35 primeros caracteres que el el checsum y espacios, dejando solo el nombre del fichero.

