Outils pour utilisateurs

Outils du site


fdupes
no way to compare when less than two revisions

Différences

Ci-dessous, les différences entre deux révisions de la page.


fdupes [2020/09/13 21:13] (Version actuelle) – créée cyrille
Ligne 1: Ligne 1:
 +====== fdupes et la recherche de doublons ======
  
 +
 +**fdupes** est utilitaire en ligne de commande qui permet de retrouver très rapidement les fichiers en doublon présents sur vos espaces de stockage.
 +Pour repérer les doublons, il ne se base pas sur le nom des fichiers mais les identifie en comparant **la signature MD5 des fichiers suivie d'une comparaison octet à octet**. 
 +Cet utilitaire, écrit en C, sous licence MIT, possède de très nombreuses options afin de répertorier, supprimer et remplacer les fichiers.
 +
 +__Voici la chaîne de comparaison utilisée__
 +  1/ Comparaison de taille
 +  2/ Comparaison de signature MD5 partielle
 +  3/ Comparaison de signature MD5 complète
 +  4/ Comparaison octet à octet.
 +  
 + 
 + 
 +=====  Installation =====
 +
 + 
 + Sous base DEBIAN
 +<code bash># apt-get install fdupes</code>
 + 
 + Sous base UBUNTU
 +<code bash>$ sudo apt-get install fdupes</code>
 + 
 + Sous freeBSD, depuis les repos
 +<code bash> # pkg install fdupes</code>
 + 
 +  Sous freeBSD, depuis les ports
 +<code bash># cd /usr/ports/sysutils/fdupes/
 +# make install clean
 +</code> 
 + 
 +=====  Utilisation =====
 +
 + 
 +<WRAP center round info 60%>
 + Syntaxe : 
 + 
 +<code bash> fdupes <option> <répertoire></code>
 +</WRAP>
 +
 + 
 + Soit un répertoire, **dupli-test** contenant 3 fichiers distincts de nom et de contenu.
 + 
 +<code bash>$ ls test-dupli/
 +aze1.txt  aze3.txt  aze.txt</code>
 +
 +Utilisons un GUI et copions les, via **ctrl +C / ctrl + V** :
 +
 +<code bash>$ ls test-dupli/
 +'aze1 (copie 1).txt'  'aze3 (copie 1).txt'  'aze (copie 1).txt'
 +'aze1 (copie 2).txt'  'aze3 (copie 2).txt'  'aze (copie 2).txt'
 +'aze1 (copie 3).txt'  'aze3 (copie 3).txt'  'aze (copie 3).txt'
 +'aze1 (copie 4).txt'  'aze3 (copie 4).txt'  'aze (copie 4).txt'
 +'aze1 (copie 5).txt'  'aze3 (copie 5).txt'  'aze (copie 5).txt'
 +'aze1 (copie 6).txt'  'aze3 (copie 6).txt'  'aze (copie 6).txt'
 + aze1.txt              aze3.txt              aze.txt
 +</code> 
 + 
 + 
 + 
 + Pour rechercher les doublons, en être informé, sans aucune autre action, pas besoin d'option : 
 +<code bash>$ fdupes  test-dupli/
 +test-dupli/aze3.txt                     
 +test-dupli/aze3 (copie 1).txt
 +test-dupli/aze3 (copie 3).txt
 +test-dupli/aze3 (copie 2).txt
 +test-dupli/aze3 (copie 6).txt
 +test-dupli/aze3 (copie 5).txt
 +test-dupli/aze3 (copie 4).txt
 +
 +test-dupli/aze.txt
 +test-dupli/aze (copie 1).txt
 +test-dupli/aze (copie 3).txt
 +test-dupli/aze (copie 2).txt
 +test-dupli/aze (copie 5).txt
 +test-dupli/aze (copie 4).txt
 +test-dupli/aze (copie 6).txt
 +
 +test-dupli/aze1.txt
 +test-dupli/aze1 (copie 1).txt
 +test-dupli/aze1 (copie 3).txt
 +test-dupli/aze1 (copie 2).txt
 +test-dupli/aze1 (copie 4).txt
 +test-dupli/aze1 (copie 6).txt
 +test-dupli/aze1 (copie 5).txt
 +</code>
 +__Pour rechercher les doublons, en être informé, et connaitre l'espace disque qu'ils utilisent, **utiliser l'option -S (Size)** :__ 
 +
 +<code bash>$ fdupes -S test-dupli/
 +13 bytes each:                          
 +test-dupli/aze3.txt
 +test-dupli/aze3 (copie 1).txt
 +....
 +test-dupli/aze3 (copie 4).txt
 +
 +169 bytes each:
 +test-dupli/aze.txt
 +test-dupli/aze (copie 1).txt
 +....
 +test-dupli/aze (copie 6).txt
 +
 +49 bytes each:
 +test-dupli/aze1.txt
 +test-dupli/aze1 (copie 1).txt
 +....
 +test-dupli/aze1 (copie 5).txt</code>
 +
 +__ Pour supprimer les doublons, **utiliser l'option -d (delete)** :__
 + 
 + Pour chaque doublon, une liste sera proposée, il faudra indiquer le fichier à préserver et les autres seront marqués à supprimer.
 + 
 +{{:fdupes1.png?400|}}
 + 
 + Pour supprimer les doublons, sans invite prompt (le nom le plus simple sera alors préserver), utiliser les options -d et -N (Non-prompt)
 + La suppression sera alors immédiate.
 + 
 +{{:fdupes2.png?400|}}
 + 
 + 
 +__ Pour faire de de même de façon récursive, **ajouter aux options précédentes simplement l'option -r** :__
 + 
 +<code bash> $ fdupes -rdN .</code>
 + Donnera une suppression récursive des doublons du répertoire courant (**.**)
 + 
 +<code bash> $ fdupes -rS /home/$USER</code>
 + Donnera la liste des doublons et leurs occupations disques pour le /home de l'utilisateur courant.
 + 
 + 
 + Pour sauvegader cette liste dans un fichier, utiliser une redirection 
 +<code bash> $ fdupes -rS /home/$USER > /home/$USER/liste-de-doublons</code>
 +  
 +  
 + A savoir, 2 fichiers au même contenu mais avec des noms différents seront considérés comme doublon, même avec des extensions différentes.
 + 
 +<code bash>$ cat test-dupli/aze.txt test-dupli/test.sh 
 +Test de doubon. Test de doubon. Test de doubon. Test de doubon. Test de doubon. 
 +Test de doubon. Test de doubon. Test de doubon. Test de doubon. Test de doubon.
 +</code>
 +On voit bien que les 2 fichiers ont exactement le même contenu.
 +<code bash>$ fdupes  -rS test-dupli/
 +81 bytes each:                          
 +test-dupli/aze.txt
 +test-dupli/test.sh</code>
 +fdupes les analyse bien comme doublon.
 +
 +
 +__Pour ne pas prendre en compte les fichiers cachés, **utiliser l'option -A**.__
 +
 +
 +Pour des plus amples informations
 +<code bash>$ man fdupes
 +$ fdupes --help
 +$ fdupes -h</code>
 +
 +
 + 
fdupes.txt · Dernière modification : 2020/09/13 21:13 de cyrille