Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Curso de Inglês Online

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Remoção de arquivos duplicados em sistemas GNU/Linux

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 19 de agosto de 2010

Em tempos de Internet, Youtube, cameras digitais, etc. o seu computador logo se enche de fotos, vídeos, músicas, apresentações, e um monte de outras coisas. Com cameras digitais então a situação é bem pior. Será que você já baixou as fotos de sua camera? Na dúvida, baixamos de novo. E o lixo vai aumentando, pois ninguém quer perder nada.

Em sistemas GNU/Linux, você pode usar o programa fdupes, que é um programa invocado a partir da linha de comando para localizar arquivos duplicados dentro de uma estrutura de diretórios. O programa funciona através do cálculo da assinatura md5 dos arquivos. Este algoritmo é utilizado para verificar a integridade de arquivos. É comum em servidores FTP publicar os arquivos juntamente com sua assinatura MD5. Ao baixar o arquivo, basta verificar o MD5 e verificar se bate com a assinatura MD5 publicada pelo distribuidor do arquivo. Se estiverem iguais, significa que o arquivo não foi corrompido durante a transferência.

Desta forma, se a assinatura MD5 de dois arquivos for igual, significa também que os arquivos são iguais. Vejamos como o programa funciona. Da forma mais simples, basta invocar o programa e especificar o diretório a ser analisado:

  $ fdupes tmp
  
  tmp/filme0.wmv
  tmp/copiafilme0.wmv
  
  tmp/filme3.wmv
  tmp/copiafilme3.wmv
  ...

O arquivo copiafilme0.wmv é uma cópia do arquivo filme0.wmv.

O comando agrupa sempre os arquivos semelhantes. No exemplo acima, cada arquivo possuía uma cópia. Note que existe uma linha em branco entre cada listagem.

O fdupe pode fazer mais, como por exemplo, uma busca recursiva:

  $ fdupes -r tmp  > duplicatas.txt

É recomendável salvar a saída em um arquivo (duplicatas.txt) para que depois se possa resolver o que fazer com as cópias.

Uma outra alternativa, a ser usada com muito cuidado, é apagar, junto com a execução do programa, os arquivos duplicados:

  $ fdupes -d tmp
  [1] tmp/filme0.wmv                      
  [2] tmp/copiafilme0.wmv
  [3] tmp/copia2filme0.wmv
  
  Set 1 of 10, preserve files [1 - 3, all]: 1
  
     [+] tmp/filme0.wmv
     [-] tmp/copiafilme0.wmv
     [-] tmp/copia2filme0.wmv
  
  [1] tmp/filme3.wmv
  [2] tmp/copiafilme3.wmv
  
  Set 2 of 10, preserve files [1 - 2, all]:

O programa me pergunta qual arquivo eu devo preservar. Na primeira instância, eu optei por preservar o arquivo 1, tmp/filme0.wmv. Os demais foram apagados. Isto pode ser visto na saída que o comando exibiu após eu ter digitado o número 1. Os arquivos apagados foram precedidos dos caracteres [-]. Outra observação, a frase Set 1 of 10 indica que foram encontrados dez conjuntos de arquivos duplicados.

É claro que se você tiver centenas de arquivos duplicados, este processo pode ser bastante entediante e propenso a erros. Para poucos diretórios a opção de deleção é válida. Para um número maior de arquivos, talvez seja melhor montar um script ou algo do tipo.

Como sempre, antes de realizar qualquer tarefa que pode envolver perda de dados, leia o manual com atenção e execute o comando com muito cuidado.

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.01/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1024 votos)

Opinião dos Leitores

Danilo
20 Mai 2011, 16:38
bom para apagar arquivos duplicados
Sergio F.Brandao
29 Dez 2010, 22:01
Para essa mesma finalidade, experimentem algo melhor !

Tenho conhecimento de um utilitário gráfico muito mais amigável, que provavelmente utiliza o fdupes como camada abaixo da interface gráfica - Trata-se do "fslint" que pode ser facilmente instalado no ubuntu e outras distribuições baseadas na Debian !

pode ser instlado com o comando:

sudo apt-get install fslint

(Não esquecer de incluir de incluir repositório de referência requerido para a instalação.

Veja descrição do pacote abaixo:

>
Pacote: fslint
Estado: instalado
Automaticamente instalado: não
Versão: 2.40-2
Prioridade: opcional
Seção: universe/admin
Mantenedor: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Tamanho Descompactado: 877k
Depende de: python (>= 2.3), python-gtk2 (>= 2.4), python-glade2, findutils (>= 4.1.1)
Descrição: A utility to fix problems with filesystems' data, like duplicate files
FSlint is a toolkit to clean filesystem lint. It includes a GTK+ GUI as well as a command line interface and can be used to reclaim disk space. It has an
interface for uninstalling packages, and it can find things like:

* Duplicate files
* Problematic filenames
* Temporary files
* Bad symlinks
* Empty directories
* Nonstripped binaries
Homepage: http://www.pixelbeat.org/fslint/
<

Experimentem vão adorar, pois é facilmente configurável para realizar diversas operações de comparação, deleção, mesclagem identiicação de arquivos iguais com nomes diferentes, e muito mais.

Acredito que esteja disponível também para outras distribuições de GNU Linux igualmente !

Boa Sorte e que lhes seja útil - Ass. Sérgio F.Brandão
Jorge
26 Ago 2010, 13:58
Puxa vida, nem sei a quanto tempo eu esperava por isto.

Vou tentar já!!!
Ulisses
22 Ago 2010, 02:36
Obrigado, muito interessante.
Paulo Alves
20 Ago 2010, 11:14
Sem dúvida uma excelente dica. Também procurei por coisa similar e nada tão simples e direto!
Valeu Queiroz! Abraço!
Wallace Silva
20 Ago 2010, 09:09
AMEI

eu sempre quis algo assim, procuro há meses, mas pelo que vejo sempre procurei errado, inacreditavel, ja criei scripts, e tudo o mais e é tal simples fdupes, CARAMBA

Cara tu mudou toda a minha forma de trabalhar, sem noção,

MUITO OBRIGADO, MESMO MESMO MESMO,

abraços
vlw
Prefiro criar hardlink
19 Ago 2010, 19:15
Prefiro criar um hardlink para não quebrar nada.
Para isso, uso o ótimo script hardlink.py, disponível em: http://code.google.com/p/hardlinkpy/
Lehnhart
19 Ago 2010, 16:16
SHOW!!!

Estava procurando exatamente isto!!

Já havia testado outras maneiras, mas nenhum é tão rápido e fácil quanto este!

Valeu!!
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Lan University

Submarino.com.br

Encontre imóveis, apartamentos e casas a venda no Imobilien
Saiba mais

 

 

Procure pela casa ou apartamento ideal à venda ou para aluguel na busca inteligente do Imohoo
Buscar imóveis