GNU/Linux >> Tutoriels Linux >  >> Linux

fdupes - Un outil de ligne de commande pour rechercher et supprimer des fichiers en double sous Linux

Il est courant de rechercher et de remplacer les fichiers en double pour la plupart des utilisateurs d'ordinateurs. Trouver et supprimer les fichiers en double est un travail fastidieux qui demande du temps et de la patience. Trouver des fichiers en double peut être très facile si votre machine est sous GNU/Linux, grâce à ‘fdupes ‘ utilitaire.

Qu'est-ce que fdupes ?

Fdupes est un utilitaire Linux écrit par Adrian Lopez en C Langage de programmation publié sous licence MIT. L'application est capable de trouver des fichiers en double dans l'ensemble donné de répertoires et de sous-répertoires. Fdupes reconnaît les doublons en comparant la signature MD5 des fichiers suivie d'une comparaison octet à octet. De nombreuses options peuvent être passées avec Fdupes pour lister, supprimer et remplacer les fichiers par des liens vers les doublons.

La comparaison commence dans l'ordre :

comparaison de taille> Comparaison partielle des signatures MD5> Comparaison complète des signatures MD5> Comparaison octet par octet .

Installer fdupes sur un Linux

Installation de la dernière version de fdupes (fdupes version 1.51) aussi simple que d'exécuter la commande suivante sur Debian systèmes basés sur Ubuntu et Linux Mint .

$ sudo apt-get install fdupes

Sur CentOS /RHEL et Fedora systèmes basés, vous devez activer le référentiel epel pour installer le package fdupes.

# yum install fdupes
# dnf install fdupes    [On Fedora 22 onwards]

Remarque  :Le gestionnaire de paquets par défaut yum est remplacé par dnf de Fedora 22 à partir de…

Comment utiliser la commande fdupes ?

1. À des fins de démonstration, créons quelques fichiers en double sous un répertoire (disons tecmint ) simplement comme :

$ mkdir /home/"$USER"/Desktop/tecmint && cd /home/"$USER"/Desktop/tecmint && for i in {1..15}; do echo "I Love Tecmint. Tecmint is a very nice community of Linux Users." > tecmint${i}.txt ; done

Après avoir exécuté la commande ci-dessus, vérifions que les fichiers en double sont créés ou non à l'aide de la commande ls.

$ ls -l

total 60
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint10.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint11.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint12.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint13.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint14.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint15.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint1.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint2.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint3.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint4.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint5.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint6.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint7.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint8.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9.txt

Le script ci-dessus crée 15 fichiers à savoir tecmint1.txt, tecmint2.txt… tecmint15.txt et tous les fichiers contiennent les mêmes données, c'est-à-dire

"I Love Tecmint. Tecmint is a very nice community of Linux Users."

2. Recherchez maintenant les fichiers en double dans le dossier tecmint .

$ fdupes /home/$USER/Desktop/tecmint 

/home/tecmint/Desktop/tecmint/tecmint13.txt
/home/tecmint/Desktop/tecmint/tecmint8.txt
/home/tecmint/Desktop/tecmint/tecmint11.txt
/home/tecmint/Desktop/tecmint/tecmint3.txt
/home/tecmint/Desktop/tecmint/tecmint4.txt
/home/tecmint/Desktop/tecmint/tecmint6.txt
/home/tecmint/Desktop/tecmint/tecmint7.txt
/home/tecmint/Desktop/tecmint/tecmint9.txt
/home/tecmint/Desktop/tecmint/tecmint10.txt
/home/tecmint/Desktop/tecmint/tecmint2.txt
/home/tecmint/Desktop/tecmint/tecmint5.txt
/home/tecmint/Desktop/tecmint/tecmint14.txt
/home/tecmint/Desktop/tecmint/tecmint1.txt
/home/tecmint/Desktop/tecmint/tecmint15.txt
/home/tecmint/Desktop/tecmint/tecmint12.txt

3. Recherchez les doublons de manière récursive dans chaque répertoire, y compris ses sous-répertoires, à l'aide de -r option.

Il recherche dans tous les fichiers et dossiers de manière récursive, en fonction du nombre de fichiers et de dossiers, il faudra un certain temps pour analyser les doublons. Pendant ce temps, vous verrez la progression totale dans le terminal, quelque chose comme ça.

$ fdupes -r /home

Progress [37780/54747] 69%

4. Voir la taille des doublons trouvés dans un dossier en utilisant le -S option.

$ fdupes -S /home/$USER/Desktop/tecmint

65 bytes each:                          
/home/tecmint/Desktop/tecmint/tecmint13.txt
/home/tecmint/Desktop/tecmint/tecmint8.txt
/home/tecmint/Desktop/tecmint/tecmint11.txt
/home/tecmint/Desktop/tecmint/tecmint3.txt
/home/tecmint/Desktop/tecmint/tecmint4.txt
/home/tecmint/Desktop/tecmint/tecmint6.txt
/home/tecmint/Desktop/tecmint/tecmint7.txt
/home/tecmint/Desktop/tecmint/tecmint9.txt
/home/tecmint/Desktop/tecmint/tecmint10.txt
/home/tecmint/Desktop/tecmint/tecmint2.txt
/home/tecmint/Desktop/tecmint/tecmint5.txt
/home/tecmint/Desktop/tecmint/tecmint14.txt
/home/tecmint/Desktop/tecmint/tecmint1.txt
/home/tecmint/Desktop/tecmint/tecmint15.txt
/home/tecmint/Desktop/tecmint/tecmint12.txt

5. Vous pouvez voir la taille des fichiers en double pour chaque répertoire et sous-répertoires rencontrés à l'aide de -S et -r options en même temps, comme :

$ fdupes -Sr /home/avi/Desktop/

65 bytes each:                          
/home/tecmint/Desktop/tecmint/tecmint13.txt
/home/tecmint/Desktop/tecmint/tecmint8.txt
/home/tecmint/Desktop/tecmint/tecmint11.txt
/home/tecmint/Desktop/tecmint/tecmint3.txt
/home/tecmint/Desktop/tecmint/tecmint4.txt
/home/tecmint/Desktop/tecmint/tecmint6.txt
/home/tecmint/Desktop/tecmint/tecmint7.txt
/home/tecmint/Desktop/tecmint/tecmint9.txt
/home/tecmint/Desktop/tecmint/tecmint10.txt
/home/tecmint/Desktop/tecmint/tecmint2.txt
/home/tecmint/Desktop/tecmint/tecmint5.txt
/home/tecmint/Desktop/tecmint/tecmint14.txt
/home/tecmint/Desktop/tecmint/tecmint1.txt
/home/tecmint/Desktop/tecmint/tecmint15.txt
/home/tecmint/Desktop/tecmint/tecmint12.txt

107 bytes each:
/home/tecmint/Desktop/resume_files/r-csc.html
/home/tecmint/Desktop/resume_files/fc.html

6. Outre la recherche dans un dossier ou dans tous les dossiers de manière récursive, vous pouvez choisir de choisir dans deux dossiers ou trois dossiers selon les besoins. Sans oublier que vous pouvez utiliser l'option -S et/ou -r si nécessaire.

$ fdupes /home/avi/Desktop/ /home/avi/Templates/

7. Pour supprimer les fichiers en double tout en conservant une copie, vous pouvez utiliser l'option ‘-d’ . Des précautions supplémentaires doivent être prises lors de l'utilisation de cette option, sinon vous risquez de perdre les fichiers/données nécessaires et attention, le processus est irrécupérable.

$ fdupes -d /home/$USER/Desktop/tecmint

[1] /home/tecmint/Desktop/tecmint/tecmint13.txt
[2] /home/tecmint/Desktop/tecmint/tecmint8.txt
[3] /home/tecmint/Desktop/tecmint/tecmint11.txt
[4] /home/tecmint/Desktop/tecmint/tecmint3.txt
[5] /home/tecmint/Desktop/tecmint/tecmint4.txt
[6] /home/tecmint/Desktop/tecmint/tecmint6.txt
[7] /home/tecmint/Desktop/tecmint/tecmint7.txt
[8] /home/tecmint/Desktop/tecmint/tecmint9.txt
[9] /home/tecmint/Desktop/tecmint/tecmint10.txt
[10] /home/tecmint/Desktop/tecmint/tecmint2.txt
[11] /home/tecmint/Desktop/tecmint/tecmint5.txt
[12] /home/tecmint/Desktop/tecmint/tecmint14.txt
[13] /home/tecmint/Desktop/tecmint/tecmint1.txt
[14] /home/tecmint/Desktop/tecmint/tecmint15.txt
[15] /home/tecmint/Desktop/tecmint/tecmint12.txt

Set 1 of 1, preserve files [1 - 15, all]: 

Vous remarquerez peut-être que tous les doublons sont répertoriés et que vous êtes invité à les supprimer, soit un par un, soit une certaine plage, soit tous en une seule fois. Vous pouvez sélectionner une plage comme ci-dessous pour supprimer des fichiers de plage spécifique.

Set 1 of 1, preserve files [1 - 15, all]: 2-15

   [-] /home/tecmint/Desktop/tecmint/tecmint13.txt
   [+] /home/tecmint/Desktop/tecmint/tecmint8.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint11.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint3.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint4.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint6.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint7.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint9.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint10.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint2.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint5.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint14.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint1.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint15.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint12.txt

8. Du point de vue de la sécurité, vous pouvez imprimer la sortie de ‘fdupes’ fichier, puis vérifiez le fichier texte pour décider quel fichier supprimer. Cela diminue les chances que votre fichier soit supprimé accidentellement. Vous pouvez faire :

$ fdupes -Sr /home > /home/fdupes.txt

Remarque :Vous pouvez remplacer ‘/home’ avec le dossier de votre choix. Utilisez également l'option ‘-r’ et ‘-S’ si vous souhaitez effectuer une recherche récursive et la taille d'impression, respectivement.

9. Vous pouvez omettre le premier fichier de chaque ensemble de correspondances en utilisant l'option ‘-f’ .

Lister d'abord les fichiers du répertoire.

$ ls -l /home/$USER/Desktop/tecmint

total 20
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (3rd copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (4th copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (another copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9.txt

puis omettez le premier fichier de chaque ensemble de correspondances.

$ fdupes -f /home/$USER/Desktop/tecmint

/home/tecmint/Desktop/tecmint9 (copy).txt
/home/tecmint/Desktop/tecmint9 (3rd copy).txt
/home/tecmint/Desktop/tecmint9 (another copy).txt
/home/tecmint/Desktop/tecmint9 (4th copy).txt

10. Vérifiez la version installée de fdupes.

$ fdupes --version

fdupes 1.51

11. Si vous avez besoin d'aide sur fdupes, vous pouvez utiliser le commutateur ‘-h’ .

$ fdupes -h

Usage: fdupes [options] DIRECTORY...

 -r --recurse     	for every directory given follow subdirectories
                  	encountered within
 -R --recurse:    	for each directory given after this option follow
                  	subdirectories encountered within (note the ':' at
                  	the end of the option, manpage for more details)
 -s --symlinks    	follow symlinks
 -H --hardlinks   	normally, when two or more files point to the same
                  	disk area they are treated as non-duplicates; this
                  	option will change this behavior
 -n --noempty     	exclude zero-length files from consideration
 -A --nohidden    	exclude hidden files from consideration
 -f --omitfirst   	omit the first file in each set of matches
 -1 --sameline    	list each set of matches on a single line
 -S --size        	show size of duplicate files
 -m --summarize   	summarize dupe information
 -q --quiet       	hide progress indicator
 -d --delete      	prompt user for files to preserve and delete all
                  	others; important: under particular circumstances,
                  	data may be lost when using this option together
                  	with -s or --symlinks, or when specifying a
                  	particular directory more than once; refer to the
                  	fdupes documentation for additional information
 -N --noprompt    	together with --delete, preserve the first file in
                  	each set of duplicates and delete the rest without
                  	prompting the user
 -v --version     	display fdupes version
 -h --help        	display this help message

C'est pour tous maintenant. Faites-moi savoir comment vous trouviez et supprimiez les fichiers en double jusqu'à présent sous Linux ? et dites moi aussi votre avis sur cet utilitaire. Mettez vos précieux commentaires dans la section des commentaires ci-dessous et n'oubliez pas de nous aimer/partager et aidez-nous à nous propager.

Je travaille sur un autre utilitaire appelé fslint pour supprimer les fichiers en double, je publierai bientôt et vous allez adorer lire.


Linux
  1. Rechercher des fichiers et des répertoires sous Linux avec la commande find

  2. Comment rechercher des fichiers avec la commande fd sous Linux

  3. 11 exemples de commande Linux diff3 (comparer 3 fichiers ligne par ligne)

  4. Comment rechercher et supprimer des répertoires et des fichiers vides sous Linux

  5. Téléchargement de fichiers sur le compte S3 à partir de la ligne de commande Linux

Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux

Comment rechercher et supprimer des fichiers en double sous Linux

Les 3 meilleurs outils pour rechercher et supprimer des fichiers en double sous Linux

Comment rechercher et supprimer des fichiers en double dans Ubuntu à l'aide de Fdupes

Comment trouver des fichiers en double sous Linux et les supprimer

Recherche des fichiers et dossiers les plus volumineux dans la ligne de commande Linux