Removendo arquivos duplicados no Linux com fdupes
Como remover arquivos duplicados no Linux com fdupes
Uma tarefa muito comum que precisamos realizar de tempos em tempos é a de procurar e eliminar arquivos duplicados em um sistema. Esse é um procedimento que permite liberar espaço precioso em disco, cuja falta pode significar problemas sérios se não for levado em conta.
Porém, essa limpeza, se realizada manualmente, pode ser extremamente tediosa e levar muito tempo, sendo recomendado usar ferramentas específicas para esse fim. Neste tutorial vamos mostrar como utilizar uma ferramenta para eliminação de arquivos duplicados no Linux, usando como exemplo o Debian GNU/Linux; a ferramenta também pode ser executada em outras distribuições, como as das famílias Fedora e Red Hat, por exemplo.
A ferramenta que utilizaremos se chama fdupes, escrita em linguagem C e distribuída sob a licença MIT.
Como instalar o fdupes
Em sistemas baseados em Debian podemos instalar a ferramenta usando o bom e velho apt:
$ sudo apt-get install fdupes
Já se você estiver utilizando uma distribuição baseada em Red Hat, como o CentOS ou o Fedora, deve primeiramente habilitar o repositório epel, e então executar um dos comandos a seguir:
# yum install fdupes # dnf install fdupes
Sintaxe do comando:
fdupes [opções] diretório01 diretório02 ...
Opções principais
-r --recurse Modo recursivo: procura arquivos duplicados no diretório e em seus subdiretórios -s --symlinks Seguir links simbólicos -H --hardlinks No geral, quando dois ou mais arquivos apontam para a mesma área do disco, eles são tratados como não-duplicados. Com essa opção, esse comportamento é alterado. -n --noempty Não leva em consideração arquivos de tamanho 0. -A --nohidden Não considera arquivos ocultos na varredura -q --quiet Ocultar o indicador de progresso da tarefa -f --omitfirst Omitir o primeiro arquivo em cada conjunto de arquivos duplicados encontrados -S --size Mostrar o tamanho dos arquivos duplicados -d --delete Pergunta ao usuário quais arquivos deseja preservar, e exclui os demais -N --noprompt junto com --delete Preserva o primeiro arquivo em cada conjunto de duplicados e exclui o restante sem perguntar -v --version Mostra a versão do fdupes instalada.
Exemplos de uso do fdupes
1 – Para encontrar arquivos duplicados com o fdupes, basta executá-lo, sem parâmetros, indicando o caminho do diretório que se deseja analisar:
$ fdupes /caminho/diretório
Será exibida uma lista contendo os nomes dos arquivos duplicados encontrados no diretório passado como argumento. Para que também sejam analisados os subdiretórios, utilize a opção -r (modo recursivo).
Por exemplo, vamos procurar por arquivos duplicados no diretório /home/fabio :
fdupes /home/fabio
Resultado da execução do comando:
Veja que foram encontrados diversos arquivos duplicados dentro desse diretório.
2 – Com a opção -S é possível verificar os tamanhos dos arquivos duplicados encontrados, como segue:
$ fdupes -S /home/fabio
3 – Também é possível especificar mais de um diretório distinto para que seja feita a varredura por arquivos duplicados, de uma só vez, separando os caminhos dos diretórios por espaços:
$ fdupes /home/fabio /home/ana
4 – Para excluir todos os arquivos duplicados em um diretório, podemos utilizar a opção -d:
$ fdupes -d /home/fabio/Documentos
Essa opção exclui todas os arquivos duplicados, porém preservando uma cópia de cada. O programa pergunta qual das cópias você deseja manter, ou se deseja manter todas (all). No exemplo, eu decidi manter a cópia de número 2 (o arquivo exemplo4). Basta entrar com o número da cópia e pressionar enter – as demais instâncias do arquivo serão eliminadas automaticamente.
É isso aí! Você pode testar as demais opções mostradas acima para aprender mais sobre o utilitário, e, como sempre, pode ler as páginas de manual para obter a ajuda completa do utilitário, que possui diversas outras opções disponíveis.
Até!
Parabéns pelo Post… Acompanho sempre seus vídeos no canal e sempre são de grande valia!
Muito obrigado Filipe!
Ficou ótimo o conteúdo. Diversos artigos do site me ajudaram muito.
Tenho uma dúvida, como faria para usar o programa apenas com um tipo de arquivo. Ex: quero verificar arquivos duplicados apenas dos PDFs.
cd /media/[user]/[pendrive]
fdupes -r -S -d -N *
Funcionou que é uma maravilha