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