J'ai beaucoup de fichiers image en double sur mon ordinateur Windows, dans différents sous-dossiers et avec des noms de fichiers différents.
Quel script Python ou programme gratuit recommanderiez-vous pour supprimer les doublons?
(J'ai lu cette question similaire, mais l'affiche pose des questions sur les doublons visuels avec différentes tailles de fichiers. Les miens sont des doublons exacts avec des noms de fichiers différents.)
Réponses:
Ne vous fiez pas aux sommes MD5.
Les sommes MD5 ne sont pas un moyen fiable de vérifier les doublons, elles ne sont qu'un moyen de vérifier les différences.
Utilisez les MD5 pour trouver les doublons candidats possibles , puis pour chaque paire partageant un MD5
Voyant que je suis déçu par des gens qui font des approches naïves pour déposer une identité en double, si vous comptez entièrement sur un algorithme de hachage, pour l'amour de Dieu, utilisez quelque chose de plus dur comme SHA256 ou SHA512, au moins vous réduirez la probabilité de un degré raisonnable en vérifiant plus de bits. MD5 est extrêmement faible pour les conditions de collision.
Je conseille également aux gens de lire ici les listes de diffusion intitulées «File Check»: http://london.pm.org/pipermail/london.pm/Week-of-Mon-20080714/thread.html
Si vous dites "MD5 peut identifier tous les fichiers de manière unique", vous avez une erreur logique.
Étant donné une plage de valeurs, de longueurs variant de 40000 octets à 100 000 000 000 octets, le nombre total de combinaisons disponibles pour cette plage dépasse largement le nombre possible de valeurs représentées par MD5, pesant à peine 128 bits.
Vous représentez 2 ^ 100 000 000 000 combinaisons avec seulement 2 ^ 128 combinaisons? Je ne pense pas que ce soit probable.
La façon la moins naïve
La méthode la moins naïve et la plus rapide pour éliminer les doublons est la suivante.
Fdupes fait cela. Et vous devez utiliser un logiciel qui utilise les mêmes critères.
la source
C'est un liner sur les systèmes d'exploitation Unix comme (y compris Linux) ou Windows avec Cygwin installé:
md5sum (qui est environ 50% plus rapide) peut être utilisé si vous savez qu'il n'y a pas de collisions délibérément créées (vous auriez plus de chances de gagner 10 loteries majeures que la chance de trouver une collision md5 naturelle).
Si vous voulez voir tous les doublons que vous avez au lieu de les supprimer, changez simplement la
unlink $file
partieprint $file, "\n"
.la source
J'ai utilisé
fdupes
(écrit en C) etfreedups
(Perl) sur les systèmes Unix, et ils pourraient également fonctionner sur Windows; il y a aussi d' autres semblables qui sont réclamés au travail sous Windows:dupmerge
,liten
(écrit en Python), etc.la source
Pour supprimer les images en double sous Windows, consultez DupliFinder. Il peut comparer des images selon une variété de critères tels que le nom, la taille et les informations réelles sur l'image.
Pour d'autres outils pour supprimer les fichiers en double, consultez cet article Lifehacker .
la source
Au lieu de DupliFinder, essayez plutôt le projet forké, DeadRinger . Nous avons corrigé une tonne de bugs dans le projet d'origine, ajouté un tas de nouvelles fonctionnalités et amélioré considérablement les performances.
la source
Une option peut être Dupkiller .
la source