Shell script para encontrar arquivos duplicados

Posted on julho 26 2006 by Andre Noel

Se você é “organizado” como eu, vai achar isso interessante.

Faz um tempo que estou pensando em procurar ou criar algo para encontrar arquivos duplicados no HD, para dar uma liberada nele. Sabe como é, músicas, fotos, backups…

Então hoje, quando decidi realmente procurar ao invés de só pensar em procurar :) , encontrei um shell script interessante em http://elonen.iki.fi/code/misc-notes/remove-duplicate-files/index.html .

O script varre o hd, a partir da pasta atual, localizando arquivos duplicados e gera um shell script com comandos rm comentados. Para apagar os arquivos, edite o arquivo de saída e descomente as linhas dos arquivos que deseja apagar.

Se você tiver dois arquivos iguais, o script gerado terá opção de remoção dos dois, você é quem escolhe qual permanece e qual será apagado.

Abaixo segue o script:

(desculpem a falha, não vi que quando postei a primeira vez sumiram alguns “\”)

OUTF=rem-duplicates.sh;
echo "#! /bin/sh" > $OUTF;
find "$@" -type f -print0 |
xargs -0 -n1 md5sum |
sort --key=1,32 | uniq -w 32 -d --all-repeated=separate |
sed -r 's/^[0-9a-f]*( )*//;s/([^a-zA-Z0-9./_-])/\\\1/g;s/(.+)/#rm \1/' >> $OUTF;
chmod a+x $OUTF; ls -l $OUTF

Espero que se divirtam com isso.

Veja também:

Leave a Reply