GNU/Linux >> Tutoriels Linux >  >> Linux

Comment rechercher et supprimer des fichiers en double sous Linux

Je sauvegarde toujours les fichiers de configuration ou tous les anciens fichiers quelque part sur mon disque dur avant de les éditer ou de les modifier, afin de pouvoir les restaurer à partir de la sauvegarde si j'ai accidentellement fait quelque chose de mal. Mais le problème est que j'ai oublié de nettoyer ces fichiers et que mon disque dur est rempli de nombreux fichiers en double après un certain temps. Je me sens trop paresseux pour nettoyer les anciens fichiers ou j'ai peur de supprimer des fichiers importants. Si vous êtes comme moi et submergé par plusieurs copies des mêmes fichiers dans différents répertoires de sauvegarde, vous pouvez rechercher et supprimer les fichiers en double à l'aide des outils indiqués ci-dessous dans les systèmes d'exploitation de type Unix.

Mise en garde :

Soyez prudent lorsque vous supprimez des fichiers en double. Si vous ne faites pas attention, cela vous conduira à une perte accidentelle de données . Je vous conseille de faire très attention lorsque vous utilisez ces outils.

Rechercher et supprimer les fichiers en double sous Linux

Pour les besoins de ce guide, je vais discuter de trois utilitaires à savoir,

  1. Rdtrouver,
  2. Fdupes,
  3. FSlint.

Ces trois utilitaires sont gratuits, open source et fonctionnent sur la plupart des systèmes d'exploitation de type Unix.

1. Rdtrouver

Rdtrouver , signifie r redondant d ata trouver , est un utilitaire gratuit et open source pour trouver des fichiers en double dans et/ou dans des répertoires et sous-répertoires. Il compare les fichiers en fonction de leur contenu, et non de leurs noms de fichiers. Rdfind utilise le classement algorithme pour classer les fichiers originaux et dupliqués. Si vous avez deux fichiers égaux ou plus, Rdfind est assez intelligent pour trouver le fichier d'origine et considérer le reste des fichiers comme des doublons. Une fois qu'il a trouvé les doublons, il vous les signalera. Vous pouvez décider de les supprimer ou de les remplacer par des liens physiques ouliens symboliques (soft) .

Installer Rdfind

Rdfind est disponible en AUR . Ainsi, vous pouvez l'installer dans des systèmes basés sur Arch en utilisant n'importe quel programme d'assistance AUR comme Yay comme indiqué ci-dessous.

$ yay -S rdfind

Sur Debian, Ubuntu, Linux Mint :

$ sudo apt-get install rdfind

Sur Fedora :

$ sudo dnf install rdfind

Sur RHEL, CentOS :

$ sudo yum install epel-release
$ sudo yum install rdfind

Utilisation

Une fois installé, exécutez simplement la commande Rdfind avec le chemin du répertoire pour rechercher les fichiers en double.

$ rdfind ~/Downloads

Scanner un répertoire avec Rdfind

Comme vous le voyez dans la capture d'écran ci-dessus, la commande Rdfind analysera le répertoire ~/Downloads et enregistrera les résultats dans un fichier nommé results.txt dans le répertoire de travail courant. Vous pouvez afficher le nom des éventuels fichiers en double dans le fichier results.txt.

$ cat results.txt 
# Automatically generated
# duptype id depth size device inode priority name
DUPTYPE_FIRST_OCCURRENCE 1469 8 9 2050 15864884 1 /home/sk/Downloads/tor-browser_en-US/Browser/TorBrowser/Tor/PluggableTransports/fte/tests/dfas/test5.regex
DUPTYPE_WITHIN_SAME_TREE -1469 8 9 2050 15864886 1 /home/sk/Downloads/tor-browser_en-US/Browser/TorBrowser/Tor/PluggableTransports/fte/tests/dfas/test6.regex
[...]
DUPTYPE_FIRST_OCCURRENCE 13 0 403635 2050 15740257 1 /home/sk/Downloads/Hyperledger(1).pdf
DUPTYPE_WITHIN_SAME_TREE -13 0 403635 2050 15741071 1 /home/sk/Downloads/Hyperledger.pdf
# end of file

En examinant le fichier results.txt, vous pouvez facilement trouver les doublons. Vous pouvez supprimer les doublons manuellement si vous le souhaitez.

En outre, vous pouvez -dryrun option pour trouver tous les doublons dans un répertoire donné sans rien changer et sortir le résumé dans votre Terminal :

$ rdfind -dryrun true ~/Downloads

Une fois que vous avez trouvé les doublons, vous pouvez les remplacer par des liens physiques ou des liens symboliques.

Pour remplacer tous les doublons par des liens physiques, exécutez :

$ rdfind -makehardlinks true ~/Downloads

Pour remplacer tous les doublons par des liens symboliques/liens symboliques, exécutez :

$ rdfind -makesymlinks true ~/Downloads

Vous pouvez avoir des fichiers vides dans un répertoire et vouloir les ignorer. Si c'est le cas, utilisez -ignoreempty comme ci-dessous.

$ rdfind -ignoreempty true ~/Downloads

Si vous ne voulez plus des anciens fichiers, supprimez simplement les fichiers en double au lieu de les remplacer par des liens matériels ou logiciels.

Pour supprimer tous les doublons, exécutez simplement :

$ rdfind -deleteduplicates true ~/Downloads

Si vous ne voulez pas ignorer les fichiers vides et les supprimer avec tous les doublons, exécutez :

$ rdfind -deleteduplicates true -ignoreempty false ~/Downloads

Pour plus de détails, consultez la section d'aide :

$ rdfind --help

Et, les pages de manuel :

$ man rdfind

Suggestion de lecture :

  • Supprimer les fichiers en double de votre Android avec le fixateur de fichiers en double

2. Fdupes

Fdupes est encore un autre utilitaire de ligne de commande pour identifier et supprimer les fichiers en double dans les répertoires spécifiés et les sous-répertoires. C'est un utilitaire open source gratuit écrit en C langage de programmation. Fdupes identifie les doublons en comparant les tailles de fichiers, les signatures MD5 partielles, les signatures MD5 complètes, et enfin en effectuant une comparaison octet par octet pour vérification.

Semblable à l'utilitaire Rdfind, Fdupes est livré avec une poignée d'options pour effectuer des opérations, telles que :

  • Rechercher récursivement les fichiers en double dans les répertoires et sous-répertoires
  • Exclure les fichiers vides et les fichiers cachés
  • Afficher la taille des doublons
  • Supprimez les doublons dès qu'ils sont rencontrés
  • Exclure les fichiers avec différents propriétaires/groupes ou bits d'autorisation en tant que doublons
  • Et bien plus encore.

Installation de Fdupes

Fdupes est disponible dans les dépôts par défaut de la plupart des distributions Linux.

Sur Arch Linux et ses variantes comme Antergos, Manjaro Linux, installez-le en utilisant Pacman comme ci-dessous.

$ sudo pacman -S fdupes

Sur Debian, Ubuntu, Linux Mint :

$ sudo apt-get install fdupes

Sur Fedora :

$ sudo dnf install fdupes

Sur RHEL, CentOS :

$ sudo yum install epel-release
$ sudo yum install fdupes

Utilisation

L'utilisation de Fdupes est assez simple. Exécutez simplement la commande suivante pour trouver les fichiers en double dans un répertoire, par exemple ~/Downloads .

$ fdupes ~/Downloads

Exemple de sortie de mon système :

/home/sk/Downloads/Hyperledger.pdf
/home/sk/Downloads/Hyperledger(1).pdf

Comme vous pouvez le voir, j'ai un fichier en double dans /home/sk/Downloads/ annuaire. Il affiche uniquement les doublons du répertoire parent. Comment afficher les doublons des sous-répertoires ? Utilisez simplement -r comme ci-dessous.

$ fdupes -r ~/Downloads

Vous verrez maintenant les doublons de /home/sk/Downloads/ répertoire et ses sous-répertoires également.

Fdupes peut également être en mesure de trouver des doublons à partir de plusieurs répertoires à la fois.

$ fdupes ~/Downloads ~/Documents/ostechnix

Vous pouvez même rechercher plusieurs répertoires, un de manière récursive comme ci-dessous :

$ fdupes ~/Downloads -r ~/Documents/ostechnix

Les commandes ci-dessus recherchent les doublons dans le répertoire "~/Downloads" et le répertoire "~/Documents/ostechnix" et ses sous-répertoires.

Parfois, vous voudrez peut-être connaître la taille des doublons dans un répertoire. Si oui, utilisez -S comme ci-dessous.

$ fdupes -S ~/Downloads
403635 bytes each: 
/home/sk/Downloads/Hyperledger.pdf
/home/sk/Downloads/Hyperledger(1).pdf

De même, pour afficher la taille des doublons dans les répertoires parent et enfant, utilisez -Sr option.

Nous pouvons exclure les fichiers vides et cachés de l'examen en utilisant -n et -A respectivement.

$ fdupes -n ~/Downloads
$ fdupes -A ~/Downloads

La première commande exclura les fichiers de longueur nulle de la prise en compte et la seconde exclura les fichiers cachés de la prise en compte lors de la recherche de doublons dans le répertoire spécifié.

Pour résumer les informations sur les fichiers en double, utilisez -m option.

$ fdupes -m ~/Downloads
1 duplicate files (in 1 sets), occupying 403.6 kilobytes

Pour supprimer tous les doublons, utilisez -d option.

$ fdupes -d ~/Downloads

Exemple de sortie :

[1] /home/sk/Downloads/Hyperledger Fabric Installation.pdf
[2] /home/sk/Downloads/Hyperledger Fabric Installation(1).pdf

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

Cette commande vous demandera des fichiers pour conserver et supprimer tous les autres doublons. Entrez simplement n'importe quel nombre pour conserver le fichier correspondant et supprimer les fichiers restants. Faites plus attention lorsque vous utilisez cette option. Vous pouvez supprimer les fichiers d'origine si vous ne faites pas attention.

Si vous souhaitez conserver le premier fichier de chaque ensemble de doublons et supprimer les autres sans demander à chaque fois, utilisez -dN option (non recommandée).

$ fdupes -dN ~/Downloads

Pour supprimer les doublons au fur et à mesure qu'ils sont rencontrés, utilisez -I drapeau.

$ fdupes -I ~/Downloads

Pour plus de détails sur Fdupes, consultez la section d'aide et les pages de manuel.

$ fdupes --help
$ man fdupes

Lire aussi :

  • Fixateur de photos en double :bien organiser votre photothèque

3. FSlin

FSlint est encore un autre utilitaire de recherche de fichiers en double que j'utilise de temps en temps pour me débarrasser des fichiers en double inutiles et libérer de l'espace disque sur mon système Linux. Contrairement aux deux autres utilitaires, FSlint possède à la fois les modes GUI et CLI. C'est donc un outil plus convivial pour les débutants. FSlint ne trouve pas seulement les doublons, mais aussi les mauvais liens symboliques, les mauvais noms, les fichiers temporaires, les mauvais IDS, les répertoires vides et les binaires non supprimés, etc.

Installer FSlint

FSlint est disponible en AUR , vous pouvez donc l'installer à l'aide de n'importe quel assistant AUR.

$ yay -S fslint

Sur Debian, Ubuntu, Linux Mint :

$ sudo apt-get install fslint

Sur Fedora :

$ sudo dnf install fslint

Sur RHEL, CentOS :

$ sudo yum install epel-release
$ sudo yum install fslint

Une fois installé, lancez-le depuis le menu ou le lanceur d'applications.

Voici à quoi ressemble l'interface graphique de FSlint.

FSlint interface

Comme vous pouvez le constater, l'interface de FSlint est conviviale et explicite. Dans le Chemin de recherche , ajoutez le chemin du répertoire que vous souhaitez analyser et cliquez sur Rechercher bouton dans le coin inférieur gauche pour trouver les doublons. Cochez l'option recurse pour rechercher récursivement les doublons dans les répertoires et sous-répertoires. Le FSlint va scanner rapidement le répertoire donné et les lister.

interface graphique fslint

Dans la liste, choisissez les doublons que vous souhaitez nettoyer et sélectionnez l'une d'entre elles en fonction d'actions telles que Enregistrer, Supprimer, Fusionner et Lien symbolique.

Dans les Paramètres de recherche avancée , vous pouvez spécifier les chemins à exclure lors de la recherche de doublons.

fslint recherche avancée

Options de ligne de commande de FSlint

FSlint fournit une collection des utilitaires CLI suivants pour trouver des doublons dans votre système de fichiers :

  • trouver -- trouver les fichiers DUPLICATES
  • trouver -- trouver Name Lint (problèmes avec les noms de fichiers)
  • findu8 -- trouver les noms de fichiers avec un encodage utf8 invalide
  • trouver -- trouver les mauvais liens (différents problèmes avec les liens symboliques)
  • trouven -- trouver le même nom (problèmes de conflits de noms)
  • trouvé -- trouver les répertoires vides
  • trouver -- trouver des fichiers avec des identifiants d'utilisateurs morts
  • trouver -- trouver les exécutables non dépouillés
  • chercheurs -- trouver les espaces blancs redondants dans les fichiers
  • trouver -- trouver les fichiers temporaires
  • trouver -- trouver les bibliothèques éventuellement inutilisées
  • répertoire zip -- Récupérer l'espace perdu dans les entrées du répertoire ext2

Tous ces utilitaires sont disponibles sous /usr/share/fslint/fslint/fslint emplacement.

Par exemple, pour trouver des doublons dans un répertoire donné, faites :

$ /usr/share/fslint/fslint/findup ~/Downloads/

De même, pour trouver des répertoires vides, la commande serait :

$ /usr/share/fslint/fslint/finded ~/Downloads/

Pour obtenir plus de détails sur chaque utilitaire, par exemple findup , exécutez :

$ /usr/share/fslint/fslint/findup --help

Pour plus de détails sur FSlint, consultez la section d'aide et les pages de manuel.

$ /usr/share/fslint/fslint/fslint --help
$ man fslint

Conclusion

Vous connaissez maintenant trois outils pour rechercher et supprimer les fichiers en double indésirables sous Linux. Parmi ces trois outils, j'utilise souvent Rdfind. Cela ne signifie pas que les deux autres utilitaires ne sont pas efficaces, mais je suis juste satisfait de Rdfind jusqu'à présent. Eh bien, c'est votre tour. Quel est votre outil préféré et pourquoi ? Faites-nous en part dans la section des commentaires ci-dessous.


Linux
  1. Comment trouver des fichiers avec des autorisations SUID et SGID sous Linux

  2. Comment rechercher et supprimer des photos en double sous Linux

  3. Comment trouver des fichiers en double sous Linux

  4. Linux Supprimer des fichiers et des répertoires

  5. Comment rechercher et supprimer des répertoires et des fichiers vides sous Unix

Comment trouver et supprimer des liens symboliques brisés 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 rechercher et supprimer des répertoires vides sous Linux

Comment trouver des fichiers en double sous Linux et les supprimer

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