Como verificar se há arquivos duplicados?

4

Eu tenho um disco rígido externo no qual fiz backup de arquivos várias vezes. Alguns arquivos foram modificados entre backups, outros não. Alguns podem ter sido renomeados. Agora estou ficando sem espaço e gostaria de limpar arquivos duplicados.

Minha ideia era md5sum de cada arquivo na unidade, depois procurar por duplicatas e diff dos arquivos relevantes (apenas no caso, haha). Essa é a melhor maneira de fazer isso? Quais são alguns outros métodos de verificação de arquivos duplicados?

    
por Der Hochstapler 21.03.2010 / 19:52

3 respostas

3

A computação de um hash MD5 de cada arquivo (sugerido na pergunta e nos links das respostas) parece ser uma maneira bastante "cara" de resolver o problema. Ignorando o cálculo real de cada hash, basta ler cada um e cada arquivo completamente incorre em muito trabalho no disco rígido (extremamente lento).

Minha sugestão para um "algoritmo" seria algo que liga isso:

  • Obtenha o tamanho exato de cada arquivo na unidade (ou diretório, ou qualquer outro). Isso deve ser relativamente barato, pois é provável que o tamanho seja armazenado na parte do índice do sistema de arquivos.
  • Para cada tamanho de arquivo exclusivo com mais de um arquivo associado, calcule o MD5 de cada um deles e compare os valores de hash para detectar duplicatas. Embora não seja muito provável, dois arquivos com o mesmo tamanho podem ter o mesmo valor. Se você não quiser correr o risco de falsos positivos, compare os arquivos byte por byte ou após a comparação de hash.
  • Para cada outro tamanho de arquivo exclusivo, você não tem duplicatas.
por 21.03.2010 / 20:11
2

Se o md5 disser que é o mesmo arquivo, você não precisa do diff. As pessoas resolveram este problema um bom número de vezes para que você possa fazer o que fez a>.

    
por 21.03.2010 / 19:57

Tags