Cela faisait longtemps que je cherchais un moyen de trouver les fichiers dupliqués (doublons) sur mon système Linux. J'ai trouvé une solution en ligne de commande sur le net ici. Je me suis permis de l'adapter à mes besoins et je vais en profiter pour disséquer la commande en détail. En résumer, la commande récupère la taille de tous les fichiers (ce qui est rapide), les compares si des tailles identiques sont trouvées un hash md5 est appliqué (ce qui est long) pour s'assurer qu'ils soient bien identiques.
On déclare la variable SEARCH qui contient le chemin du dossier dans lequel on souhaite chercher nos doublons :
root@host:~# SEARCH=/data root@host:~# find $SEARCH -not -empty -type f -printf %s\\n | sort -rn | uniq -d | xargs -I{} -n1 find $SEARCH -type f -size {}c -print0 | xargs -0 md5sum | sort | uniq -w32 --all-repeated=separate
find $SEARCH -not -empty -type f -printf %s\\n
sort -rn
uniq -d
xargs -I{} -n1 find $SEARCH -type f -size {}c -print0
xargs -0 md5sum
uniq -w32 -all-repeated=separate
Contact :