Como encontrar e apagar arquivos duplicados

Por Claylson Martins

Se você faz regularmente um backup de seus arquivos e acaba superlotando seu sistema com material repetido, aqui vai uma dica. Na verdade, são três dicas de programas para apagar arquivos duplicados. Eles são úteis e podem evitar que se apaguem arquivos importantes. Portanto, se você  está nesta situação, com várias cópias dos mesmos arquivos em diferentes diretórios de backup, é possível encontrar e excluir arquivos duplicados usando as ferramentas listadas abaixo em sistemas operacionais Linux. Neste post, saiba como encontrar e apagar arquivos duplicados.

Uma precaução:

Tenha cuidado ao excluir arquivos duplicados. Portanto, isso poderá levar à perda acidental de dados. Assim, fique atento ao usar estas ferramentas:

  • Rdfind,
  • Fdupes,
  • FSlint.

Esses três utilitários são gratuitos, de código aberto e funcionam na maioria dos sistemas operacionais baseados em Linux.

1. Rdfind

Rdfind, significa descoberta de dados redundantes. É um utilitário de código aberto e gratuito para localizar arquivos duplicados e/ou dentro de diretórios e subdiretórios. Ele compara arquivos com base em seu conteúdo, não nos nomes.

Rdfind usa algoritmo de classificação para classificar arquivos originais e duplicados. Se você tiver dois ou mais arquivos idênticos, o Rdfind é inteligente o suficiente para localizar o arquivo original e considera o restante dos arquivos como duplicados. Depois de encontrar as duplicatas, você será informado. Você pode optar por removê-los ou substituí-los por links físicos ou simbólicos.

Instalando o Rdfind

Rdfind está disponível em  AUR . Portanto, você pode instalá-lo em sistemas baseados em Arch usando qualquer programa AUR auxiliar, como Yay, conforme mostrado abaixo.

$ yay -S rdfind

No Debian, Ubuntu, Linux Mint:

$ sudo apt-get install rdfind

No Fedora:

$ sudo dnf install rdfind

No RHEL, o CentOS:

$ sudo yum instala epel-release
$ sudo yum install rdfind

Use

Uma vez instalado, basta executar o comando Rdfind junto com o caminho do diretório para localizar os arquivos duplicados.

$ rdfind ~/Downloads

Como você pode ver na imagem acima, o comando Rdfind varrerá o diretório ~ /Downloads e salvará os resultados em um arquivo chamado results.txt no diretório de trabalho atual. Você pode ver o nome dos possíveis arquivos duplicados no arquivo results.txt.

$ cat results.txt 
# Automatically generated
# duptype id depth size device inode priority name
DUPTYPE_FIRST_OCCURRENCE 1469 8 9 2050 15864884 1 /home/sk/Downloads/tor-browser_en-US/Browser/TorBrowser/Tor/PluggableTransports/fte/tests/dfas/test5.regex
DUPTYPE_WITHIN_SAME_TREE -1469 8 9 2050 15864886 1 /home/sk/Downloads/tor-browser_en-US/Browser/TorBrowser/Tor/PluggableTransports/fte/tests/dfas/test6.regex
[...]
DUPTYPE_FIRST_OCCURRENCE 13 0 403635 2050 15740257 1 /home/sk/Downloads/Hyperledger(1).pdf
DUPTYPE_WITHIN_SAME_TREE -13 0 403635 2050 15741071 1 /home/sk/Downloads/Hyperledger.pdf
# end of file

Analisando o arquivo results.txt, você pode encontrar facilmente as duplicatas. Assim, é possível excluir as duplicatas manualmente, se desejar.

Além disso, você pode usar a opção -dryrun para encontrar todas as repetições em um determinado diretório sem alterar nada no Terminal:

$ rdfind -dryrun true ~/Downloads

Depois de encontrar as duplicatas, você pode substituí-las por links físicos ou simbólicos.

Para substituir todas as duplicatas por links físicos, execute:

$ rdfind -makehardlinks true ~/Downloads

Para substituir todos os duplicados por links simbólicos, execute:

$ rdfind -makesymlinks true ~/Downloads

Você pode ter alguns arquivos vazios em um diretório e você deseja ignorá-los. Nesse caso, use a opção –ignoreempty como abaixo.

$ rdfind -ignoreempty true ~/Downloads

Se você não deseja mais os arquivos antigos, simplesmente exclua os arquivos duplicados em vez de substituí-los.

Para eliminar todas as duplicações, basta executar:

$ rdfind -deleteduplicates true ~/Downloads

Se você não quiser ignorar os arquivos vazios e excluí-los junto com todas as repetições, execute:

$ rdfind -deleteduplicates true -ignoreempty false ~/Downloads

Para mais detalhes, veja a seção de ajuda:

$ rdfind --help

E as páginas do manual:

$ man rdfind

2. Fdupes

O Fdupes  é outro utilitário de linha de comando para identificar e remover arquivos duplicados em diretórios e subdiretórios específicos. É um utilitário gratuito de código aberto escrito em linguagem de programação C. Então, o Fdupes identifica duplicações comparando tamanhos de arquivos, assinaturas MD5 parciais, assinaturas MD5 completas e, finalmente, executando uma comparação byte a byte para verificação.

Semelhante ao utilitário Rdfind, o Fdupes vem com muitas opções para executar operações, como:

  • encontrar arquivos duplicados em diretórios e subdiretórios;
  • excluir arquivos vazios e arquivos ocultos;
  • mostrar tamanho dos arquivos duplos;
  • remover arquivos duplicados  com diferentes grupos/proprietários;
  • remover imediatamente os aquivos encontrados.

 

Instalação do Fdupes

O Fdupes está disponível nos repositórios padrão da maioria das distribuições Linux.

No Arch Linux e suas variantes, como Antergos, Manjaro Linux, instale-o usando o Pacman como mostrado abaixo.

$ sudo pacman -S fdupes

No Debian, Ubuntu, Linux Mint:

$ sudo apt-get install fdupes

No Fedora:

$ sudo dnf install fdupes

No RHEL, o CentOS:

$ sudo yum install epel-release
$ sudo yum install fdupes

Use

O uso de Fdupes é bem simples. Basta executar o seguinte comando para encontrar os arquivos duplicados em um diretório, por exemplo ~ /Downloads.

$ fdupes ~/Downloads

Exemplo de saída do sistema:

/home/sk/Downloads/Hyperledger.pdf 
/home/sk/Downloads/Hyperledger(1).pdf

Como você pode ver, há um arquivo duplicado no diretório /home/sk/Downloads/. Ele mostra somente as duplicações do diretório principal. Como ver as duplicatas dos subdiretórios? Simplesmente use a opção -r como abaixo.

$ fdupes -r ~/Downloads

Agora você verá as repetições do diretório/home/sk/Downloads/ e seus subdiretórios também.

Fdupes também pode encontrar duplicações de vários diretórios de uma só vez.

$ fdupes ~/Downloads ~/Documents/ostechnix

Você pode até pesquisar vários diretórios:

$ fdupes ~/Downloads -r ~/Documents/ostechnix

Os comandos acima procuram por duplicações no diretório “~ /Downloads” e no diretório “~ /Documents/example” e seus subdiretórios.

Às vezes, você pode querer saber o tamanho dos arquivos duplicados em um diretório. Se sim, use a opção -S como abaixo.

$ Fdupes -S ~ / Downloads 
403,635 bytes cada: 
/home/sk/Downloads/Hyperledger.pdf 
/home/sk/Downloads/Hyperledger(1).pdf

Da mesma forma, para ver o tamanho dos arquivos duplicados nos diretórios principais e secundários, use a opção -Sr.

Podemos excluir arquivos vazios e ocultos da consideração usando -e -A respectivamente.

$ fdupes -n ~/Downloads
$ fdupes -A ~/Downloads

O primeiro comando irá excluir os arquivos sem importância e o último excluirá os arquivos ocultos enquanto procura por duplicações no diretório especificado.

Para resumir informações de arquivos duplicados, use a opção -m.

$ fdupes -m ~/Downloads
1 duplicate files (in 1 sets), occupying 403.6 kilobytes

Para eliminar todas as repetições, use a opção -d.

$ fdupes -d ~/Downloads

Exemplo de saída:

[1] /home/sk/Downloads/Hyperledger Fabric Installation.pdf
[2] /home/sk/Downloads/Hyperledger Fabric Installation(1).pdf

Set 1 of 1, preserve files [1 - 2, all]:

Esse comando solicitará os arquivos para preservar e eliminar todos os outros duplicados. Basta digitar qualquer número para manter o arquivo correspondente e excluir os arquivos restantes. Preste mais atenção ao usar essa opção. Você pode excluir arquivos originais se não tiver cuidado.

Se você quiser manter o primeiro arquivo em cada conjunto de duplicações e excluir os outros sem ficar perguntando, use a opção -dN (não recomendada).

$ fdupes -dN ~/Downloads

Para remover duplicados encontrados, use -I .

$ fdupes -I ~/Downloads

Para mais detalhes sobre o Fdupes, veja a seção de ajuda e as man pages .

$ fdupes --help
$ man fdupes

3. FSlint

O FSlint  é outro utilitário localizador de arquivos duplicados desnecessários. Ao contrário dos outros dois utilitários, o FSlint possui os modos GUI e CLI. Portanto, é uma ferramenta mais fácil de usar para iniciantes. O FSlint não apenas encontra duplicatas, mas também links simbólicos, nomes incorretos, arquivos temporários, IDS incorretos, diretórios vazios e binários não excluídos etc.

Instalação do FSlint

O FSlint está disponível no AUR, portanto, você pode instalá-lo usando qualquer ajuda do AUR.

$ yay -S fslint

No Debian, Ubuntu, Linux Mint:

$ sudo apt-get install fslint

No Fedora:

$ sudo dnf install fslint

No RHEL, o CentOS:

$ sudo yum install epel-release
$ sudo yum install fslint

Uma vez instalado, execute-o no menu ou no lançador de aplicativos.

É assim que o GUI FSlint parece.

Assim, como você pode ver, a interface FSlint é fácil de usar. Na guia Caminho de pesquisa, adicione o caminho ao diretório que você deseja verificar e clique no botão Pesquisar no canto inferior esquerdo para localizar as duplicações. Além disso, verifique a opção para procurar por duplicações em diretórios e subdiretórios. Então, o FSlint irá varrer rapidamente o diretório fornecido e listá-los.

Então, na lista, escolha as duplicatas que deseja limpar e selecione qualquer uma delas com ações como Salvar, Excluir, Mesclar e Link simbólico.

Igualmente, na guia Advanced Search Parameters. Portanto, você pode especificar as rotas a serem excluídas durante a pesquisa de duplicações.

Opções de linha de comando do FSlint

Do mesmo modo, o FSlint fornece uma coleção dos seguintes utilitários CLI para encontrar duplicatas em seu sistema de arquivos:

  • findup – encontrar arquivos duplicados;
  • findnl – encontrar o nome de Lint (problemas com nomes de arquivo);
  • findu8 – encontrar nomes de arquivos com codificação UTF8 inválida;
  • findbl – encontrar links ruins (vários problemas com links simbólicos);
  • findsn – encontrar mesmo nome (problemas com nomes conflitantes);
  • finded – encontrar diretórios vazios;
  • findid – encontrar arquivos com usuário ID mortos;
  • findns – encontrar executáveis não eliminados;
  • findrs – encontrar espaços em branco redundantes em arquivos;
  • findtf – encontrar arquivos temporários;
  • findul – encontrar bibliotecas, possivelmente, não utilizado;
  • zipdir – Recuperar espaço perdido nas entradas do diretório ext2;
  • Todos esses utilitários estão disponíveis em/usr/share/fslint/fslint/fslint location.

Assim, por exemplo, para encontrar duplicados em um determinado diretório, faça o seguinte:

$ /usr/share/fslint/fslint/findup ~/Downloads/

Da mesma forma, para encontrar diretórios vazios, o comando seria:

$ /usr/share/fslint/fslint/finded ~/Downloads/

Para obter mais detalhes sobre cada utilitário, por exemplo, findup, execute:

$ /usr/share/fslint/fslint/findup --help

Então, para mais detalhes sobre o FSlint, veja a seção de ajuda e as páginas man.

$ /usr/share/fslint/fslint/fslint --help
$ man fslint

Fonte e Imagens: MasLinux

Share This Article
Sair da versão mobile