Pesquisa de site

5 melhores ferramentas para localizar e excluir arquivos duplicados no Linux


Organizar seu diretório pessoal ou mesmo sistema pode ser particularmente difícil se você tem o hábito de baixar todo tipo de coisa da Internet usando seus gerenciadores de download.

Muitas vezes você pode descobrir que baixou o mesmo mp3, pdf e epub (e todos os tipos de outras extensões de arquivo) e os copiou para diretórios diferentes. Isso pode fazer com que seus diretórios fiquem cheios de todos os tipos de coisas duplicadas inúteis.

Neste tutorial, você aprenderá como localizar e excluir arquivos duplicados no Linux usando ferramentas de linha de comando rdfind, fdupes e rmlint , bem como usar ferramentas GUI chamadas DupeGuru e FSlint.

Uma nota de cautela – sempre tome cuidado com o que você exclui do seu sistema, pois isso pode levar à perda indesejada de dados. Se você estiver usando uma nova ferramenta, primeiro experimente-a em um diretório de teste onde a exclusão de arquivos não será um problema.

1. Rdfind – Encontre arquivos duplicados no Linux

Rdfind vem da localização de dados redundantes, que é uma ferramenta de linha de comando gratuita usada para localizar arquivos duplicados em ou dentro de vários diretórios. Ele verifica diretórios recursivamente e identifica arquivos com conteúdo idêntico, permitindo que você execute as ações apropriadas, como excluir ou mover as duplicatas.

Rdfind usa um algoritmo para classificar os arquivos e detecta qual das duplicatas é o arquivo original e considera o restante como duplicatas.

As regras de classificação são:

  • Se A foi encontrado durante a varredura de um argumento de entrada anterior a B, A terá uma classificação mais alta.
  • Se A foi encontrado em uma profundidade inferior a B, A tem classificação mais alta.
  • Se A foi encontrado antes de B, A tem uma classificação mais elevada.

A última regra é usada principalmente quando dois arquivos são encontrados no mesmo diretório.

Instale Rdfind no Linux

Para instalar rdfind no Linux, use o seguinte comando de acordo com sua distribuição Linux.

sudo apt install rdfind         [On Debian, Ubuntu and Mint]
sudo yum install rdfind         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/rdfind  [On Gentoo Linux]
sudo apk add rdfind             [On Alpine Linux]
sudo pacman -S rdfind           [On Arch Linux]
sudo zypper install rdfind      [On OpenSUSE]    

Para executar rdfind em um diretório simplesmente digite rdfind e o diretório de destino.

rdfind /home/user

Como você pode ver, rdfind salvará os resultados em um arquivo chamado results.txt localizado no mesmo diretório onde você executou o programa. O arquivo contém todos os arquivos duplicados que o rdfind encontrou. Você pode revisar o arquivo e remover os arquivos duplicados manualmente, se desejar.

Outra coisa que você pode fazer é usar a opção -dryrun que fornecerá uma lista de duplicatas sem realizar nenhuma ação:

rdfind -dryrun true /home/user

Ao encontrar as duplicatas, você pode optar por substituí-las por links físicos.

rdfind -makehardlinks true /home/user

E se desejar excluir as duplicatas, você pode executar.

rdfind -deleteduplicates true /home/user

Para verificar outras opções úteis do rdfind você pode usar o manual do rdfind.

man rdfind 

2. Fdupes – Procure arquivos duplicados no Linux

Fdupes é outro programa de linha de comando que permite identificar arquivos duplicados em seu sistema. Ele pesquisa diretórios recursivamente, comparando tamanhos e conteúdo de arquivos para identificar duplicatas.

Ele usa os seguintes métodos para determinar arquivos duplicados:

  • Comparando assinaturas md5sum parciais
  • Comparando assinaturas md5sum completas
  • verificação de comparação byte a byte

Assim como rdfind, possui opções semelhantes:

  • Pesquisar recursivamente
  • Excluir arquivos vazios
  • Mostra o tamanho dos arquivos duplicados
  • Exclua duplicatas imediatamente
  • Excluir arquivos com um proprietário diferente

Instale Fdupes no Linux

Para instalar fdupes no Linux, use o seguinte comando de acordo com sua distribuição Linux.

sudo apt install fdupes         [On Debian, Ubuntu and Mint]
sudo yum install fdupes         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/fdupes  [On Gentoo Linux]
sudo apk add fdupes             [On Alpine Linux]
sudo pacman -S fdupes           [On Arch Linux]
sudo zypper install fdupes      [On OpenSUSE]    

A sintaxe de Fdupes é semelhante a rdfind. Basta digitar o comando seguido do diretório que deseja verificar.

fdupes <dir>

Para pesquisar arquivos recursivamente, você terá que especificar -r uma opção como esta.

fdupes -r <dir>

Você também pode especificar vários diretórios e especificar um dir para ser pesquisado recursivamente.

fdupes <dir1> -r <dir2>

Para que o fdupes calcule o tamanho dos arquivos duplicados, use a opção -S.

fdupes -S <dir>

Para reunir informações resumidas sobre os arquivos encontrados use a opção -m.

fdupes -m <dir>

Finalmente, se você deseja excluir todas as duplicatas, use -d uma opção como esta.

fdupes -d <dir>

Fdupes perguntará quais dos arquivos encontrados serão excluídos. Você precisará inserir o número do arquivo:

Uma solução que definitivamente não é recomendada é usar a opção -N que resultará na preservação apenas do primeiro arquivo.

fdupes -dN <dir>

Para obter uma lista de opções disponíveis para usar com fdupes, revise a página de ajuda executando.

fdupes -help

3. Rmlint – Remover arquivos duplicados

Rmlint é uma ferramenta de linha de comando usada para localizar e remover arquivos duplicados e semelhantes a lint em sistemas Linux. Ajuda a identificar arquivos com conteúdo idêntico, bem como diversas formas de redundância ou fiapos, como arquivos vazios, links simbólicos quebrados e arquivos órfãos.

Instale Rmlint no Linux

Para instalar Rmlint no Linux, use o seguinte comando de acordo com sua distribuição Linux.

sudo apt install rmlint         [On Debian, Ubuntu and Mint]
sudo yum install rmlint         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/rmlint  [On Gentoo Linux]
sudo apk add rmlint             [On Alpine Linux]
sudo pacman -S rmlint           [On Arch Linux]
sudo zypper install rmlint      [On OpenSUSE]    

4. dupeGuru – Encontre arquivos duplicados em um Linux

dupeGuru é uma ferramenta de código aberto e multiplataforma que pode ser usada para localizar arquivos duplicados em um sistema Linux. A ferramenta pode verificar nomes de arquivos ou conteúdo em uma ou mais pastas. Ele também permite que você encontre o nome do arquivo semelhante aos arquivos que você está procurando.

dupeGuru vem em diferentes versões para plataformas Windows, Mac e Linux. Seu recurso de algoritmo de correspondência rápida e difusa ajuda você a encontrar arquivos duplicados em um minuto. É personalizável, você pode extrair exatamente os arquivos duplicados que deseja e eliminar arquivos indesejados do sistema.

Instale dupeGuru no Linux

Para instalar dupeGuru no Linux, use o seguinte comando de acordo com sua distribuição Linux.

sudo apt install dupeguru         [On Debian, Ubuntu and Mint]
sudo yum install dupeguru         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/dupeguru  [On Gentoo Linux]
sudo apk add dupeguru             [On Alpine Linux]
sudo pacman -S dupeguru           [On Arch Linux]
sudo zypper install dupeguru      [On OpenSUSE]    

5. FSlint – Localizador de arquivos duplicados para Linux

FSlint é um utilitário gratuito usado para localizar e limpar várias formas de lint em um sistema de arquivos. Ele também relata arquivos duplicados, diretórios vazios, arquivos temporários, nomes duplicados/conflitantes (binários), links simbólicos inválidos e muito mais. Possui modos de linha de comando e GUI.

No entanto, é importante observar que, a partir do meu limite de conhecimento em setembro de 2022, o FSlint foi atualizado pela última vez em 2013 e pode não ser mantido ativamente ou não ser compatível com distribuições Linux mais recentes.

Instale FSlint no Linux

Para instalar o FSlint no Linux, use o seguinte comando de acordo com sua distribuição Linux.

sudo apt install fslint         [On Debian, Ubuntu and Mint]
sudo yum install fslint         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/fslint  [On Gentoo Linux]
sudo apk add fslint             [On Alpine Linux]
sudo pacman -S fslint           [On Arch Linux]
sudo zypper install fslint      [On OpenSUSE]    

Conclusão

Essas são ferramentas muito úteis para localizar arquivos duplicados em seu sistema Linux, mas você deve ter muito cuidado ao excluir esses arquivos.

Se você não tiver certeza se precisa ou não de um arquivo, seria melhor criar um backup desse arquivo e lembrar seu diretório antes de excluí-lo. Se você tiver alguma dúvida ou comentário, envie-os na seção de comentários abaixo.