Listar ficheros duplicados (script 1 línea)

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.

Retro

Lugares

Redes

Sistemas

Varios