• [^] # Re: plusieurs outils de dédoublonnage

    Posté par (site web personnel) . En réponse au journal fdupes : un utilitaire pour gagner de la place sur son disque dur. Évalué à 5. Dernière modification le 13 mai 2018 à 15:33.

    Il existe de nombreux outils de dédoublonnage. A commencer par fslint (dont la sous-commande findup est marrante à lire car c'est en fait un gros pipe). La plupart d'entre eux fonctionne sur le même principe

    • parcourir le filesystem et identifier les fichiers de même taille
    • sur ces derniers, calculer un hash (md5 ou autre, éventuellement en le faisant par inode croissant pour éviter que les vieux disques durs ne battent les blancs en neige - beaucoup moins utile avec les SSD d'aujourd'hui. N.B. J'ai récemment découvert xxhash qui est bien plus rapide qu'un MD5 et même apparemment aussi bien plus rapide qu'un CRC. N.B. d'après mon expérience faire un hash sur le début/fin/milieu de fichier est souvent suffisant (pas la peine de parcourir l'entièreté des gros fichiers .iso par exemple... et c'est exactement ce que fait imohash. Evidemment c'est plus risqué dans le cas d'une VM et ça ne dispense pas de checks additionnels)
    • si deux fichiers ont à la fois même taille et même hash (parfois avec un double-check e.g. SHA1 en plus du CRC ou MD5), ils sont considérés comme identiques (souvent indépendamment de leur nom)

    De mon côté, je ne souhaite pas qu'un outil fasse des modifications sur mon fs, mais juste qu'il m'indique quels sont les fichiers/dossiers en double pour m'aider à faire le tri. Sauf que... tous les outils que je connais (y compris fslint) me listent toute les sous-arborescences en double au lieu de factoriser la réponse avec juste "ces deux dossiers sont identiques". C'est pour ça que j'ai écrit Duplicide il y a longtemps. Ce n'est sûrement pas le plus rapide (je pense à le réécrire en Go avec imohash + xxhash car à l'heure actuelle avec mon SSD je suis CPU-bound, mais comme mon implémentation actuelle en Python utilise déjà une approche analogue à imohash ça me renvoie quand même un résultat en un temps raisonnable) et ce n'est sûrement pas parfait (feedback welcome :), et comme c'est sûrement encore buggé ça ne dispense pas d'un double check pour vérifier qu'il ne renvoie pas de faux positif (l'outil n'est pas sensé modifier vos données, mais j'ai mis le disclaimer habituel i.e. je ne suis pas responsable en cas de pépin et vous utilisez l'outil à vos propres risques, etc.), mais à mon niveau ça m'a bien aidé à faire le tri et réorganiser mes données alors que j'avais plusieurs backups non synchronisés sur plusieurs supports différents.