Chercher des fichiers en double

Rechercher des doublons, des fichiers ou répertoires en plusieurs exemplaires.

En une ligne

La commande ci-dessous va récupérer les fichiers dans le répertoire courant, et pour chaque fichier, calculer leur somme de hachage. Ensuite les sommes sont triés et seulement les doublons seront affichés (option -d et -D de uniq)

find . ! -empty -type f -exec md5sum {} + | sort | uniq -w32 -dD
simple mais non optimisé si vous avez de beaucoup de gros fichier (le hachage peut-être évité si les fichiers n'ont pas la même taille). Si vous êtes dans la situation où vous avez énormément de gros fichier, préférez fdupes

réponse provenant du site What's the quickest way to find duplicated files ?

Avec fdupes

Ce logiciel permet de donner les doublons en se basant sur le poids et la somme de hachage des fichiers.

installez le paquet fdupes

Pour l'utiliser récursivement dans un dossier

fdupes -R .

Utiliser la commande suivante qui affichera la taille et le chemin des fichiers ayant les mêmes noms.

find . -mindepth 1 -type f -printf '%s %p %f\n' | sort -t ' ' -k 3,3 | uniq -f 2 --all-repeated=separate | cut -d ' ' -f1,2
  • -type f pour indiquer à la commande find de ne prendre que les fichiers (pas les répertoires)
  • -printf '%s %p %f\n' on affiche pour chaque entrée 3 champs (le poids, le chemin et le nom de fichier) séparé par un espace
  • -t ' ' on indique à la commande sort qu'il y a des champs (donc de ne pas trier par ligne mais par un champ spécifique)
  • -k 3,3 on prend le 3ème champ
  • -f 2 pour la commande uniq on se base sur le 2ème champ.
  • cut -d ' ' -f1,2 on ne garde que les deux premiers champs (le poids et le chemin)
  • doublons.txt
  • Dernière modification: Le 07/11/2024, 23:59
  • par Amiralgaby