FDUPES - Uma ferramenta de linha de comando para encontrar e excluir arquivos duplicados no Linux

FDUPES - Uma ferramenta de linha de comando para encontrar e excluir arquivos duplicados no Linux

É um requisito comum encontrar e substituir arquivos duplicados para a maioria dos usuários de computador. Encontrar e remover arquivos duplicados é um trabalho cansativo que exige tempo e paciência. Encontrar arquivos duplicados pode ser muito fácil se sua máquina for alimentada por GNU/Linux, graças a 'FDUPES' Utilitário.

FDUPES - Encontre e exclua arquivos duplicados no Linux

O que é fdupes?

FDUPES é um utilitário Linux escrito por Adrian Lopez em C linguagem de programação liberada sob licença do MIT. O aplicativo é capaz de encontrar arquivos duplicados no conjunto de diretórios e subdiretos. Os fdupes reconhecem duplicatas comparando a assinatura do MD5 de arquivos seguidos de uma comparação de byte a bytes. Muitas opções podem ser passadas com fdupes para listar, excluir e substituir os arquivos por links hards para duplicar.

A comparação começa na ordem:

Comparação de tamanho > Comparação parcial de assinatura MD5 > Comparação completa de assinatura MD5 > Comparação de byte a bytes.

Instale o FDUPES em um Linux

Instalação da versão mais recente do FDUPES (FDUPES versão 1.51) tão fácil quanto executar o seguinte comando em Debian sistemas baseados em Ubuntu e Linux Mint.

$ sudo apt-get install fdupes 

Sobre CENTOS/RHEL e Fedora Sistemas baseados, você precisa ativar o Epel Repository para instalar o pacote FDUPES.

# yum install fdupes # dnf install fdupes [no fedora 22 em diante] 

Observação: O gerente de pacote padrão yum é substituído por DNF de Fedora 22 em diante ..

Como usar o comando fdupes?

1. Para fins de demonstração, vamos criar poucos arquivos duplicados em um diretório (digamos Tecmint) simplesmente como:

$ mkdir/home/"$ user"/desktop/tecmint && cd/home/"$ user"/desktop/tecmint && para i em 1… 15; Echo "eu amo Tecmint. Tecmint é uma comunidade muito agradável de usuários do Linux."> Tecmint $ i.TXT ; feito 

Depois de executar o comando acima, vamos verificar se os arquivos de duplicados são criados ou não usando o comando ls.

$ ls -l TOTAL 60 -RW-R-R-- 1 Tecmint Tecmint 65 8 de agosto 11:22 Tecmint10.txt -rw-r- r-- 1 Tecmint Tecmint 65 8 de agosto 11:22 Tecmint11.txt -rw-r- r-- 1 tecmint tecmint 65 8 de agosto 11:22 Tecmint12.txt -rw-r- r-- 1 tecmint tecmint 65 8 de agosto 11:22 Tecmint13.txt -rw-r- r-- 1 tecmint tecmint 65 8 de agosto 11:22 Tecmint14.txt -rw-r- r-- 1 tecmint tecmint 65 8 de agosto 11:22 Tecmint15.txt -rw-r- r-- 1 tecmint tecmint 65 8 de agosto 11:22 Tecmint1.txt -rw-r- r-- 1 tecmint tecmint 65 8 de agosto 11:22 Tecmint2.txt -rw-r- r-- 1 tecmint tecmint 65 8 de agosto 11:22 Tecmint3.txt -rw-r- r-- 1 tecmint tecmint 65 8 de agosto 11:22 Tecmint4.txt -rw-r- r-- 1 tecmint tecmint 65 8 de agosto 11:22 Tecmint5.txt -rw-r- r-- 1 Tecmint Tecmint 65 de agosto 8 11:22 Tecmint6.txt -rw-r- r-- 1 Tecmint Tecmint 65 de agosto 8 11:22 Tecmint7.txt -rw-r- r-- 1 tecmint tecmint 65 8 de agosto 11:22 Tecmint8.txt -rw-r- r-- 1 tecmint tecmint 65 8 de agosto 11:22 Tecmint9.TXT 

O script acima criado 15 arquivos a saber, Tecmint1.txt, Tecmint2.txt… Tecmint15.txt e todos os arquivos contêm os mesmos dados que eu.e.,

"Eu amo Tecmint. Tecmint é uma comunidade muito agradável de usuários do Linux." 

2. Agora procure arquivos duplicados na pasta Tecmint.

$ fdups/home/$ user/desktop/tecmint /Home/Tecmint/Desktop/Tecmint/Tecmint13.txt/home/tecmint/desktop/tecmint/tecmint8.txt/home/Tecmint/Desktop/Tecmint/Tecmint11.txt/home/tecmint/desktop/tecmint/tecmint3.txt/home/Tecmint/Desktop/Tecmint/Tecmint4.txt/home/Tecmint/Desktop/Tecmint/Tecmint6.txt/home/Tecmint/Desktop/Tecmint/Tecmint7.txt/home/Tecmint/Desktop/Tecmint/Tecmint9.txt/home/Tecmint/Desktop/Tecmint/Tecmint10.txt/home/Tecmint/Desktop/Tecmint/Tecmint2.txt/home/Tecmint/Desktop/Tecmint/Tecmint5.txt/home/Tecmint/Desktop/Tecmint/Tecmint14.txt/home/Tecmint/Desktop/Tecmint/Tecmint1.txt/home/Tecmint/Desktop/Tecmint/Tecmint15.txt/home/Tecmint/Desktop/Tecmint/Tecmint12.TXT 

3. Procure duplicatas recursivamente em todos os diretórios, incluindo seus subdiretos usando o -r opção.

Pesquise em todos os arquivos e pasta recursivamente, dependendo do número de arquivos e pastas, levará algum tempo para digitalizar duplicações. Nesse momento, você receberá o progresso total no terminal, algo assim.

$ fdups -r /home Progresso [37780/54747] 69% 

4. Veja o tamanho das duplicatas encontradas em uma pasta usando o -S opção.

$ fDUPES -S/HOME/$ User/Desktop/Tecmint 65 bytes cada:/Home/Tecmint/Desktop/Tecmint/Tecmint13.txt/home/tecmint/desktop/tecmint/tecmint8.txt/home/Tecmint/Desktop/Tecmint/Tecmint11.txt/home/tecmint/desktop/tecmint/tecmint3.txt/home/Tecmint/Desktop/Tecmint/Tecmint4.txt/home/Tecmint/Desktop/Tecmint/Tecmint6.txt/home/Tecmint/Desktop/Tecmint/Tecmint7.txt/home/Tecmint/Desktop/Tecmint/Tecmint9.txt/home/Tecmint/Desktop/Tecmint/Tecmint10.txt/home/Tecmint/Desktop/Tecmint/Tecmint2.txt/home/Tecmint/Desktop/Tecmint/Tecmint5.txt/home/Tecmint/Desktop/Tecmint/Tecmint14.txt/home/Tecmint/Desktop/Tecmint/Tecmint1.txt/home/Tecmint/Desktop/Tecmint/Tecmint15.txt/home/Tecmint/Desktop/Tecmint/Tecmint12.TXT 

5. Você pode ver o tamanho de arquivos duplicados para todos os diretórios e subdiretórios encontrados no uso do -S e -r opções ao mesmo tempo, como:

$ fDUPES -SR/Home/Avi/Desktop/ 65 bytes cada: /Home/Tecmint/Desktop/Tecmint/Tecmint13.txt/home/tecmint/desktop/tecmint/tecmint8.txt/home/Tecmint/Desktop/Tecmint/Tecmint11.txt/home/tecmint/desktop/tecmint/tecmint3.txt/home/Tecmint/Desktop/Tecmint/Tecmint4.txt/home/Tecmint/Desktop/Tecmint/Tecmint6.txt/home/Tecmint/Desktop/Tecmint/Tecmint7.txt/home/Tecmint/Desktop/Tecmint/Tecmint9.txt/home/Tecmint/Desktop/Tecmint/Tecmint10.txt/home/Tecmint/Desktop/Tecmint/Tecmint2.txt/home/Tecmint/Desktop/Tecmint/Tecmint5.txt/home/Tecmint/Desktop/Tecmint/Tecmint14.txt/home/Tecmint/Desktop/Tecmint/Tecmint1.txt/home/Tecmint/Desktop/Tecmint/Tecmint15.txt/home/Tecmint/Desktop/Tecmint/Tecmint12.TXT 107 bytes cada: /home/tecmint/desktop/currume_files/r-cscs.html/home/tecmint/desktop/currume_files/fc.html 

6. Além de pesquisar em uma pasta ou todas as pastas recursivamente, você pode escolher escolher em duas pastas ou três pastas, conforme necessário. Sem mencionar que você pode usar a opção -S e/ou -r se necessário.

$ fDUPES/Home/Avi/Desktop//Home/Avi/Modelos/ 

7. Para excluir os arquivos duplicados enquanto preserva uma cópia, você pode usar a opção '-d'. Cuidados extras devem ser tomados enquanto estiver usando esta opção, caso contrário, você pode acabar perdendo os arquivos/dados necessários e lembre -se de que o processo é irrecuperável.

$ fDUPES -D/HOME/$ User/Desktop/Tecmint [1]/Home/Tecmint/Desktop/Tecmint/Tecmint13.txt [2]/home/tecmint/desktop/tecmint/tecmint8.txt [3]/Home/Tecmint/Desktop/Tecmint/Tecmint11.txt [4]/home/tecmint/desktop/tecmint/tecmint3.txt [5]/Home/Tecmint/Desktop/Tecmint/Tecmint4.txt [6]/Home/Tecmint/Desktop/Tecmint/Tecmint6.txt [7]/Home/Tecmint/Desktop/Tecmint/Tecmint7.txt [8]/Home/Tecmint/Desktop/Tecmint/Tecmint9.txt [9]/Home/Tecmint/Desktop/Tecmint/Tecmint10.txt [10]/Home/Tecmint/Desktop/Tecmint/Tecmint2.txt [11]/Home/Tecmint/Desktop/Tecmint/Tecmint5.txt [12]/Home/Tecmint/Desktop/Tecmint/Tecmint14.txt [13]/Home/Tecmint/Desktop/Tecmint/Tecmint1.txt [14]/Home/Tecmint/Desktop/Tecmint/Tecmint15.txt [15]/Home/Tecmint/Desktop/Tecmint/Tecmint12.TXT Set 1 de 1, Preserve Arquivos [1 - 15, All]: 

Você pode notar que todas as duplicatas estão listadas e você é solicitado a excluir, um por um ou certo intervalo ou tudo de uma só vez. Você pode selecionar um intervalo como abaixo para excluir arquivos de arquivos de intervalo específico.

Definir 1 de 1, preservar arquivos [1 - 15, todos]: 2-15 [-]/Home/Tecmint/Desktop/Tecmint/Tecmint13.txt [+]/home/tecmint/desktop/tecmint/tecmint8.txt [-]/home/tecmint/desktop/tecmint/tecmint11.txt [-]/home/tecmint/desktop/tecmint/tecmint3.txt [-]/home/tecmint/desktop/tecmint/tecmint4.txt [-]/home/tecmint/desktop/tecmint/tecmint6.txt [-]/home/tecmint/desktop/tecmint/tecmint7.txt [-]/home/tecmint/desktop/tecmint/tecmint9.txt [-]/home/tecmint/desktop/tecmint/tecmint10.txt [-]/home/tecmint/desktop/tecmint/tecmint2.txt [-]/home/tecmint/desktop/tecmint/tecmint5.txt [-]/home/tecmint/desktop/tecmint/tecmint14.txt [-]/home/tecmint/desktop/tecmint/tecmint1.txt [-]/home/tecmint/desktop/tecmint/tecmint15.txt [-]/home/tecmint/desktop/tecmint/tecmint12.TXT 

8. Do ponto de vista de segurança, você pode imprimir a saída de 'fDUPES' Para arquivar e depois verificar o arquivo de texto para decidir qual arquivo excluir. Isso diminui as chances de excluir seu arquivo acidentalmente. Você pode fazer:

$ fDUPES -SR /HOME> /HOME /FDUPES.TXT 

Observação: Você pode substituir '/lar' com a pasta desejada. Use também a opção '-R' e '-S' Se você deseja pesquisar recursivamente e imprimir o tamanho, respectivamente.

9. Você pode omitir o primeiro arquivo de cada conjunto de correspondências usando a opção '-f'.

Primeira lista de arquivos do diretório.

$ ls -l/home/$ user/desktop/tecmint TOTAL 20 -RW-R-R-- 1 TECMINT TECMINT 65 8 de agosto 11:22 Tecmint9 (3ª cópia).TXT -RW-R-R-- 1 Tecmint Tecmint 65 8 de agosto 11:22 Tecmint9 (4ª cópia).txt -rw-r- r-- 1 Tecmint Tecmint 65 8 de agosto 11:22 Tecmint9 (outra cópia).txt -rw-r-r-- 1 Tecmint Tecmint 65 8 de agosto 11:22 Tecmint9 (cópia).txt -rw-r- r-- 1 tecmint tecmint 65 8 de agosto 11:22 Tecmint9.TXT 

e então omite o primeiro arquivo de cada conjunto de correspondências.

$ fdups -f/home/$ user/desktop/tecmint /Home/Tecmint/Desktop/Tecmint9 (cópia).txt/home/tecmint/desktop/tecmint9 (3ª cópia).txt/home/tecmint/desktop/tecmint9 (outra cópia).TXT/Home/Tecmint/Desktop/Tecmint9 (4ª cópia).TXT 

10. Verifique a versão instalada do FDUPES.

$ fdupes --version FDUPES 1.51 

11. Se você precisar de ajuda no FDUPES, você pode usar o switch '-h'.

$ fdUPES -H Uso: FDUPES [Options] Diretório… -R -Recurse para todos os diretórios dados a seguir os subdiretórios encontrados dentro de -r - -Recurse: para cada diretório dado após esta opção seguir os subdiretórios encontrados dentro (observe o ':' No final da opção , Manpage para obter mais detalhes) -S -Symlinks segue symblinks -H -Hardlinks normalmente, quando dois ou mais arquivos apontam para a mesma área de disco que são tratados como não duplicados; Esta opção alterará esse comportamento -N -NOEMPTY Excluir arquivos de comprimento zero da consideração --a -não excluir arquivos ocultos da consideração -f --omitfirst omitir o primeiro arquivo em cada conjunto de correspondências -1 -Lista de Sameline cada de correspondências em uma única linha - -size o tamanho do tamanho dos arquivos duplicados --m - -Summarize, resumindo o DUPE Information -q --quiet ocultar indicador de progresso -d -Delete Usuário para preservar e excluir todos os outros; importante:Em circunstâncias particulares, os dados podem ser perdidos ao usar essa opção juntamente com -s ou - -symlinks ou ao especificar um diretório específico mais de uma vez; Consulte a documentação do FDUPES para obter informações adicionais -n - -Nooprompt juntamente com -Delete, preserve o primeiro arquivo em cada conjunto de duplicatas e exclua o restante sem solicitar o usuário -v -version display fdups versão -h -help display esta mensagem de ajuda 

Isso é para todos agora. Deixe -me saber como você estava encontrando e excluindo arquivos duplicados até agora no Linux? E também me diga sua opinião sobre este utilitário. Coloque seu feedback valioso na seção de comentários abaixo e não se esqueça de gostar/nos compartilhar e ajude -nos a se espalhar.

Estou trabalhando em outro utilitário chamado FSLint para remover arquivos duplicados, em breve postará e vocês gostarão de ler.