Chercher et lister les fichiers dupliqués sous GNU/Linux

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.

Préambule

Environnement

Commande

La ligne de commande

On déclare la variable SEARCH qui contient le chemin du dossier dans lequel on souhaite chercher nos doublons :

root@host:~# SEARCH=/data; 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

Explications

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
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :