Como encontrar e excluir arquivos duplicados no Linux

Todos os dias estamos baixando, criando e editando vários tipos de arquivos em nosso sistema operacional, neste caso específico estamos falando do Linux, e uma das falhas comuns é que podemos frequentemente ter vários arquivos duplicados que, não ocupam apenas um extra espaço no disco rígido, mas pode se tornar um fator de confusão ao abrir e editar arquivos.

Em muitas ocasiões temos em nossos desktops ou servidores vários arquivos, independentemente do seu formato, duplicatas e não sabemos disso. Isso faz com que ocupe espaço desnecessariamente e consiga trabalhar com um arquivo errado, pois podemos editar um e depois abrir o outro, etc. Uma forma prática de organizar melhor nosso ambiente de trabalho é detectar e eliminar esses arquivos duplicados para que assim seja possível utilizar um único arquivo.

Vale a pena realizar esta tarefa não só para poder apagar os duplicados, mas também para realizar pesquisas onde podemos eliminar e apagar os arquivos que já não queremos mas que repetimos por diferentes partes do sistema operativo Linux. Não importa a versão, pois pode ser no Fedora, Ubuntu, Debian, CentOS entre muitos outros.

Já vimos na sua época como encontrar arquivos duplicados no Windows, aqui nos concentramos nos ambientes Linux, onde temos ferramentas tanto no nível gráfico quanto na linha de comando, que nos ajudarão a encontrar esses arquivos e eliminar aqueles que consideramos serem nao é útil.

Solvetic irá explicar como detectar e eliminar arquivos duplicados no Linux de uma forma simples, mas funcional.

O que é o utilitário RdfindRdfind é uma ferramenta de linha de comando desenvolvida para detectar arquivos duplicados no diretório. Seu uso pode ser aplicado para compactar diretórios de backup ou para encontrar arquivos duplicados de forma simples, este utilitário compara arquivos com base em seu conteúdo, mas não em seus nomes de arquivo, pois é baseado na soma de verificação. O Rdfind utiliza um algoritmo para classificar os arquivos e assim detectar qual das duplicatas é a original e assim considerar as demais como duplicatas. As regras para usar Rdfind são:

  • Se A foi encontrado durante a varredura de um argumento de entrada antes de B, A é classificado mais alto.
  • Se A foi encontrado em uma profundidade menor que B, A é classificado mais alto.
  • Se A foi encontrado antes de B, A é classificado mais alto.

O que é o algoritmo de RdfindRdfind, como mencionamos, faz uso do seguinte algoritmo onde N é o número de arquivos a pesquisar e o esforço necessário é O (Nlog (N)). Rdfind classifica os arquivos em inodes antes de ler do disco, portanto, esse processo é rápido e só lê os dados do disco quando necessário. O algoritmo gerencia as seguintes sequências:

  • Um loop é criado sobre cada argumento na linha de comando, cada argumento é atribuído a um número de prioridade, em ordem crescente.
  • Para cada argumento, o conteúdo do diretório é listado recursivamente e mapeado para a lista de arquivos.
  • Rdfind atribui um número de profundidade de diretório, começando em 0 para cada argumento.
  • Se o argumento de entrada for um arquivo, ele será adicionado à lista de arquivos.
  • A lista é então percorrida e os tamanhos de todos os arquivos são descobertos.
  • Se o sinalizador “-removeidentinode” for verdadeiro, os elementos da lista que já foram adicionados são removidos, de acordo com a combinação do número do dispositivo e inode.
  • Os arquivos são classificados por tamanho e, em seguida, os arquivos são removidos da lista, que têm tamanhos exclusivos.
  • É ordenado por dispositivo e inode que acelera a leitura dos arquivos).
  • Os arquivos na lista que são do mesmo tamanho, mas diferentes primeiros bytes são removidos.
  • A soma de verificação é executada para cada arquivo.
  • Apenas os arquivos da lista com o mesmo tamanho e soma de verificação são mantidos. Estas são as duplicatas.
  • A lista é classificada por tamanho, número de prioridade e profundidade. O primeiro arquivo em cada conjunto de duplicatas é considerado o original por padrão.
  • Se você marcar "-makeresultsfile true", o arquivo de resultados é impresso (padrão).
  • Se o sinalizador for "-deleteduplicates true", os arquivos duplicados serão excluídos.
  • Se o sinalizador for "-makesymlinks true", as duplicatas são substituídas por um link simbólico para o original.
  • Se o resultado for "-makehardlinks true", procedemos à substituição das duplicatas por um link para o original.

1. Encontre arquivos duplicados com o utilitário Rdfind no Linux

Passo 1
Para instalar o Rdfind no Linux, podemos executar qualquer um dos seguintes comandos:

 sudo apt install rdfind (Debian / Ubuntu / Mint) sudo yum install epel-release && $ sudo yum install rdfind (CentOS / RHEL) sudo dnf install rdfind (Fedora) 

Passo 2
Depois que o Rdfind for baixado e instalado, vamos executá-lo em um diretório simples da seguinte maneira:

 rdfind / home / Solvetic 

etapa 3
Aí podemos ver que é detectado o número de arquivos no referido diretório e indica se os arquivos duplicados foram ou não eliminados. O utilitário Rdfind salvará os resultados em um arquivo results.txt localizado no mesmo diretório de onde o programa foi executado, podemos ver seu conteúdo usando cat:

 cat results.txt 

Passo 4
Uma tarefa extra para usar com rdfind é usar o parâmetro "-dryrun" que fornecerá uma lista de duplicatas sem realizar nenhuma ação sobre elas:

 rdfind -dryrun true / home / Solvetic 

Etapa 5
Em caso de detecção de duplicatas, é possível substituí-las por hardlinks como este.

 rdfind -makehardlinks true / home / user 
Etapa 6
Para eliminar duplicatas, devemos executar o seguinte:
 rdfind -deleteduplicates true / home / user 
Etapa 7
Para acessar a ajuda do Rdfind usaremos o seguinte comando:
 homem rdfind 

2. Encontre arquivos duplicados com o utilitário Fdupes no Linux


Outra opção que temos no Linux para validar arquivos duplicados é o Fdupes. É uma ferramenta de linha de comando que nos permite observar detalhadamente quais arquivos temos duplicados no sistema. Fdupes é um programa que foi desenvolvido para identificar ou eliminar arquivos duplicados alojados em diretórios específicos no Linux, é open source e gratuito e é escrito em C.

Características do FdupesFdupes usa os seguintes métodos para determinar arquivos duplicados em diretórios:

  • Comparando assinaturas parciais de md5sum.
  • Comparando todas as assinaturas de md5sum.
  • Verificação de comparação byte a byte.

Ao usar Fdupes, teremos opções de uso como:

  • Pesquisa recursiva.
  • Exclua arquivos vazios.
  • Exibe o tamanho dos arquivos duplicados.
  • Remova as duplicatas imediatamente.
  • Exclua arquivos com proprietários diferentes.

Passo 1
Por padrão, esta ferramenta não é instalada, portanto, devemos inserir o seguinte comando para instalá-la. Para instalar o Fdupes, executaremos o seguinte comando:

 sudo apt install fdupes 

Passo 2
Uma vez baixado, podemos executar a seguinte linha para uma pesquisa simples. Lá, os arquivos duplicados serão exibidos.

 fdupes / caminho para pesquisar 

etapa 3
Para executar uma pesquisa recursiva, usaremos a seguinte linha:

 fdupes -r / caminho para pesquisar 

Passo 4
Será possível especificar vários diretórios e especificar um diretório para pesquisar recursivamente da seguinte forma:

 fdupes -r 
Etapa 5
Se quisermos que o Fdupes calcule o tamanho dos arquivos duplicados, usaremos a opção -S:
 fdupes -S 

Etapa 6
Para coletar informações resumidas sobre os arquivos encontrados, usaremos a opção -m:

 fdupes -m 

Etapa 7
Caso queira excluir todas as duplicatas, executaremos o seguinte:

 fdupes -d 
Etapa 8
Se quisermos ter acesso à ajuda do utilitário, executamos:
 fdupes -help 
Etapa 9
Algumas das opções gerais de uso são:

Para cada diretório selecionado, acesse seus subdiretórios

 -r -recurse 

Ativar pesquisa recursiva

 -R --recurse 

Crie links simbólicos

 -s -symlinks 

Quando dois ou mais arquivos apontam para o mesmo destino, eles são tratados como não duplicados

 -H -hardlinks 

Excluir arquivos de comprimento zero

 -n -noempty 

Excluir arquivos ocultos

 -A -não oculto 

Mostrar tamanho de arquivo duplicado

 -S -tamanho 

Excluir arquivos selecionados

 -d -delete 

Esconda o -q -quiet

 -q -quiet 

Selecione a ordem de classificação para saída e exclusão por arquivo

 -o - ***** = POR 

Opções de exclusão de arquivo de log para LOGFILE

 -l --log = LOGFILE 

Implante a versão Fdupes

 -v -version 

Exibir a mensagem de ajuda

 -h - ajuda 

3. Encontre arquivos duplicados com o utilitário FSlint no Linux


Outro que vamos usar é o FSlint, que vem por padrão em vários ditros Linux, como Ubuntu, Debian, Fedora, etc. Para saber mais sobre o FSlint, podemos visitar o seguinte link:

Passo 1
Podemos pesquisar FSlint no menu Atividades para usar.

PROLONGAR

Passo 2
Uma vez aberto é necessário que instalemos o aplicativo, para isso, basta clicar no botão Instalar e iniciará o processo de instalação do utilitário.

PROLONGAR

etapa 3
Uma vez instalada a ferramenta, procedemos à sua execução e veremos o seguinte ambiente:

Passo 4
Para iniciar o processo de pesquisa de todos os arquivos duplicados, pressione o botão "Pesquisar" localizado na parte inferior e o resultado será semelhante a este. Lá podemos selecionar os arquivos desnecessários e excluí-los pressionando o botão Excluir. A ferramenta FSlint também pode ser usada a partir do terminal no Ubuntu 16.

Etapa 5
Se quisermos instalar a ferramenta do terminal, inseriremos o comando:
sudo apt-get install fslint

Etapa 6
Assim que o FSlint estiver instalado, inseriremos os seguintes comandos para usar o FSlint. Podemos ver que todos os arquivos que temos duplicados no Sistema são exibidos.

 cd / usr / share / fslint / fslint (Este é o caminho padrão no Ubuntu) ./fslint / Caminho para encontrar os arquivos

Nota importanteNenhuma dessas ferramentas apaga arquivos duplicados, apenas nos mostra o que são e devemos realizar esta tarefa manualmente.

Podemos ver que temos duas opções práticas para detectar e eliminar arquivos duplicados em ambientes Linux e, assim, gerenciar melhor o espaço e os arquivos a serem usados.

wave wave wave wave wave