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 ce site : http://tips4linux.com/. 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 compare 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 :