Encontrei um script muito interessante para achar arquivos duplicados
http://elonen.iki.fi/code/misc-notes/remove-duplicate-files/index.html . Em uma linha:
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
Ele faz o teste dos arquivos usando o md5sum (excelente idéia - principalmente para arquivos de áudio) e depois lista quem tiver a mesma assinatura, independente do nome que se tenha dado. Ele
quase supre minha necessidade. O que eu gostaria é de poder passar passar os diretórios nos quais ele devesse procurar (/home/user1, /var/ftp/pub, /media/winntfs, /media/winfat, etc).
Eu alterei para:
OUTF=rem-duplicates.sh; echo "Digite o(s) caminho(s) (cuidado com espaços e caracteres especiais):" ; read CAMINHO ; echo "#! /bin/sh" > $OUTF; find $CAMINHO "$@" -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
Agora minha questão é a seguinte:
O
read espera qualquer coisa digitada até o enter, mas não tem o auto-completar pra caminhos longos e se eu digitar um espaço ou uma letra errada, chau. Tem como contornar isso?