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.