Com os utilitários GNU, como encontrados no Linux ou no Cygwin, você pode dizer ao uniq
para separar cada bloco de arquivos com o mesmo hash. Chamar uniq
com a opção --all-repeated
remove arquivos exclusivos da lista no processo.
sha1sum * |
sort | uniq -w 40 --all-repeated=prepend |
sed -e '/^$/ { N; d; }' -e 's/^[^ ]* //' |
tr '\n' 'sha1sum * |
sort |
awk '$1==h {print} {h=$1}' |
tr '\n' 'fdupes -f
' | xargs -0 rm --
' | xargs -0 rm --
Isso não vale o esforço em relação a este script awk
simples e portátil: imprima cada linha se seu primeiro campo for idêntico ao primeiro campo da linha anterior. Novamente, isso resolve remover arquivos exclusivos da lista.
sha1sum * |
sort | uniq -w 40 --all-repeated=prepend |
sed -e '/^$/ { N; d; }' -e 's/^[^ ]* //' |
tr '\n' 'sha1sum * |
sort |
awk '$1==h {print} {h=$1}' |
tr '\n' 'fdupes -f
' | xargs -0 rm --
' | xargs -0 rm --
Em vez de fazer isso manualmente, você pode ligar para fdupes .
%pre%