Tenho muitos arquivos de imagem duplicados no meu computador Windows, em subpastas diferentes e com nomes de arquivos diferentes.
Qual script de Python ou programa de freeware você recomendaria para remover as duplicatas?
(Eu li essa pergunta semelhante, mas o pôster está perguntando sobre duplicatas visuais com tamanhos de arquivo diferentes. As minhas são duplicatas exatas com nomes de arquivos diferentes.)
windows
python
deduplication
image-processing
BioGeek
fonte
fonte
Respostas:
Não confie nas somas MD5.
As somas MD5 não são uma maneira confiável de verificar se há duplicatas; elas são apenas uma maneira de verificar se há diferenças.
Use MD5s para encontrar possíveis duplicatas candidatas e, em seguida, para cada par que compartilha um MD5
Vendo que estou sendo criticado por pessoas que adotam abordagens ingênuas para arquivar Identidade duplicada, se você confiar inteiramente em um algoritmo de hash, pelo amor de Deus, use algo mais difícil como SHA256 ou SHA512, pelo menos reduzirá a probabilidade de um grau razoável, tendo mais bits verificados. O MD5 é extremamente fraco para condições de colisão.
Também recomendo que as pessoas leiam as listas de discussão aqui intituladas 'verificação de arquivo': http://london.pm.org/pipermail/london.pm/Week-of-Mon-20080714/thread.html
Se você disser "O MD5 pode identificar todos os arquivos exclusivamente", você terá um erro de lógica.
Dado um intervalo de valores, de comprimentos variados, de 40.000 bytes a 100.000.000.000 bytes, o número total de combinações disponíveis para esse intervalo excede em muito o número possível de valores representados pelo MD5, pesando apenas 128 bits de comprimento.
Representa 2 ^ 100.000.000.000 combinações com apenas 2 ^ 128 combinações? Eu não acho isso provável.
O caminho menos ingênuo
A maneira menos ingênua e a maneira mais rápida de eliminar duplicatas é a seguinte.
Fdupes faz isso. E você deve usar um software que use os mesmos critérios.
fonte
É um liner em sistemas operacionais unix como (incluindo Linux) ou Windows com o Cygwin instalado:
O md5sum (que é cerca de 50% mais rápido) pode ser usado se você souber que não há colisões criadas deliberadamente (você teria mais chances de ganhar 10 grandes loterias do que a chance de encontrar uma colisão md5 que ocorre naturalmente).
Se você quiser ver todos os dups que possui, em vez de removê-los, basta alterar a
unlink $file
parte paraprint $file, "\n"
.fonte
Eu usei
fdupes
(escrito em C) efreedups
(Perl) em sistemas Unix, e eles podem funcionar no Windows também; há também outras semelhantes que são requeridas para o trabalho no Windows:dupmerge
,liten
(escrito em Python), etc.fonte
Para remover imagens duplicadas no Windows, consulte o DupliFinder. Ele pode comparar imagens por vários critérios, como nome, tamanho e informações reais da imagem.
Para outras ferramentas para remover arquivos duplicados, dê uma olhada neste artigo do Lifehacker .
fonte
Em vez do DupliFinder, tente o projeto bifurcado, DeadRinger . Corrigimos uma tonelada de bugs no projeto original, adicionamos vários novos recursos e melhoramos drasticamente o desempenho.
fonte
Uma opção pode ser Dupkiller .
fonte