checkDup


checkDup é um simples programa que escrevi em Perl para verificar recursivamente duplicatas de arquivos no filesystem. Sei que já existe programas similares e mais completos, mas fiz um para atender as minhas necessidades.

Algumas instruções sobre o funcionamento:

 $ ./checkDup.pl 
Using this program...
usage: ./checkDup.pl [-hvd] [-f file]

-d        : directory
-e        : excluse directory search
-g        : write script
-h        : show help
Informado o diretório raiz.
$ ./checkDup.pl -d /home/jsl/Downloads/

Search duplicates in /home/jsl/Downloads/ ... 
*** Check /home/jsl/Downloads/aide-0.15.1.tar.gz ... 
*** Check /home/jsl/Downloads/subdir_02/newname.tar.gz ... 
*** Check /home/jsl/Downloads/subdir_01/aide-0.15.1.tar.gz ...

============== Duplicate files ==============

d0b72535ff68b93a648e4d08b0ed7f07: 
  ====> /home/jsl/Downloads/subdir_01/aide-0.15.1.tar.gz 
  ====> /home/jsl/Downloads/aide-0.15.1.tar.gz 
  ====> /home/jsl/Downloads/subdir_02/newname.tar.gz
Size of duplicate files: 830.02 KB
END
Informando o diretório raiz e o diretório excluso na verificação
$ ./checkDup.pl -d /home/jsl/Downloads/ -e /home/jsl/Downloads/subdir_02

Search duplicates in /home/jsl/Downloads/ ... 
*** Check /home/jsl/Downloads/aide-0.15.1.tar.gz ... 
*** Check /home/jsl/Downloads/subdir_01/aide-0.15.1.tar.gz ...

============== Duplicate files ==============

d0b72535ff68b93a648e4d08b0ed7f07: 
 ====> /home/jsl/Downloads/aide-0.15.1.tar.gz 
 ====> /home/jsl/Downloads/subdir_01/aide-0.15.1.tar.gz
Size of duplicate files: 415.01 KB
END
Informando o diretório raiz, diretório excluso e gerando script com arquivos a excluir.
$ ./checkDup.pl -d /home/jsl/Downloads/ -e /home/jsl/Downloads/subdir_02 -g

Search duplicates in /home/jsl/Downloads/ ... 
*** Check /home/jsl/Downloads/aide-0.15.1.tar.gz ... 
*** Check /home/jsl/Downloads/subdir_01/aide-0.15.1.tar.gz ...

============== Duplicate files ==============

d0b72535ff68b93a648e4d08b0ed7f07: 
(Preserved file: /home/jsl/Downloads/aide-0.15.1.tar.gz) 
====> /home/jsl/Downloads/aide-0.15.1.tar.gz 
====> /home/jsl/Downloads/subdir_01/aide-0.15.1.tar.gz

==> Generated script: /tmp/checkDupScript.sh
Size of duplicate files: 415.01 KB
END

$ more /tmp/checkDupScript.sh
!#/bin/bash

echo "Removing /home/jsl/Downloads/subdir_01/aide-0.15.1.tar.gz ..." 
/usr/bin/rm -f "/home/jsl/Downloads/subdir_01/aide-0.15.1.tar.gz" 
echo END

É importante frisar que ele não tem como determinar o melhor arquivo a manter, portanto, verifique o script antes de proceder com a execução.

Mais informações: checkDup

Código fonte: fonte