Le constat est universel et implacable : peu importe la taille de nos disques durs, nous finissons toujours par manquer d'espace. Entre les sauvegardes de projets, les bibliothèques de photos qui grandissent de manière exponentielle, et ce fameux répertoire "Téléchargements" qui est devenu une sorte de fourre-tout numérique, les fichiers en double s'accumulent insidieusement. Ils consomment un espace précieux, complexifient nos sauvegardes et rendent l'organisation de nos données quasi impossible.
De nombreux outils avec interface graphique promettent de résoudre ce problème, mais ils sont souvent lents, gourmands en ressources et peu flexibles. Pour les professionnels de l'informatique qui vivent dans le terminal, une solution plus élégante, plus rapide et infiniment plus puissante existe : rdfind.
rdfind
(redundant data find) est un utilitaire en ligne de commande conçu pour une seule chose, et il la fait exceptionnellement bien : trouver les fichiers redondants. Basé sur une comparaison par somme de contrôle (checksum), il est d'une précision redoutable et offre des options avancées pour traiter les doublons, bien au-delà de la simple suppression.
Dans ce guide complet, nous allons plonger au cœur de rdfind
. Nous verrons comment l'installer, maîtriser ses commandes de base, explorer ses stratégies de nettoyage intelligentes (comme l'utilisation de liens durs) et l'intégrer dans des flux de travail automatisés. Préparez-vous à libérer des gigaoctets d'espace et à reprendre le contrôle de votre système de fichiers.
Prérequis techniques
Avant de commencer, assurez-vous de disposer des éléments suivants :
- Un environnement de type Unix : Linux, macOS ou le sous-système Windows pour Linux (WSL).
- Des connaissances de base de la ligne de commande : Savoir naviguer dans les répertoires (
cd
), lister des fichiers (ls
) et comprendre les chemins d'accès. - Les droits d'administration (
sudo
ou root) : Nécessaires pour l'installation derdfind
.
I. Installation et première découverte de rdfind
Avant de pouvoir traquer les doublons, nous devons installer notre outil. Heureusement, rdfind
est présent dans les dépôts officiels de la plupart des distributions Linux, ce qui rend son installation simple et rapide.
A. Installation sur les principales distributions
Ouvrez votre terminal et tapez la commande correspondant à votre système d'exploitation :
Pour Arch Linux et ses dérivés :
sudo pacman -S rdfind
Pour les distributions basées sur RHEL/Fedora/CentOS :
sudo dnf install rdfind
# Ou pour les anciennes versions utilisant yum
# sudo yum install rdfind
Pour les distributions basées sur Debian/Ubuntu :
sudo apt update
sudo apt install rdfind
Une fois l'installation terminée, vous pouvez vérifier qu'elle s'est bien déroulée en affichant la page d'aide de l'outil :
rdfind --help
Cela affichera une liste complète des options disponibles, ce qui peut sembler intimidant au premier abord. Ne vous inquiétez pas, nous allons les démystifier pas à pas.
B. Syntaxe de base et première analyse
Le fonctionnement de rdfind
est remarquablement intelligent. Il procède en plusieurs passes pour optimiser la vitesse :
- Il scanne le répertoire cible et trie les fichiers par taille. Les fichiers de taille unique sont immédiatement exclus.
- Pour les groupes de fichiers de taille identique, il effectue une première comparaison de quelques octets au début et à la fin.
- Enfin, pour les fichiers qui semblent toujours identiques, il calcule une somme de contrôle complète (checksum, par défaut SHA-1) pour garantir à 100% qu'ils sont des copies conformes.
Lançons notre première analyse. La syntaxe la plus simple est rdfind [répertoire]
. Positionnez-vous dans un répertoire où vous suspectez la présence de doublons (votre répertoire ~/Téléchargements
est un excellent candidat) et lancez la commande.
# Exemple : analyse du répertoire personnel de l'utilisateur
rdfind ~/
Note : Lancerrdfind
sur un répertoire très volumineux (comme votrehome
entier) peut prendre du temps. Pour un premier essai, il est conseillé de cibler un sous-répertoire plus petit.
Une fois l'analyse terminée, rdfind
ne modifie aucun fichier. À la place, il crée un fichier nommé results.txt
dans le répertoire depuis lequel vous avez lancé la commande. Ce fichier est votre rapport d'analyse.
C. Comprendre le fichier results.txt
Ouvrons ce fameux fichier results.txt
avec un éditeur de texte (less
, nano
, vim
, etc.). Son contenu est structuré et facile à interpréter.
# Mtime sorting is default
# Duplicates are sorted by path, size and mtime.
# First file is the original, the rest are duplicates.
#
# ID size mtime depth device/inode priority path
# ---------------------------------------------------------------------------------
# -1 4135 1745914639 2 259/3410522 1 ./photos/vacances_2024/IMG_1024.JPG
DUPLICATE 4135 1745812201 3 259/3540011 -1 ./backups/photos/IMG_1024.JPG
#DUPTYPE_FIRST_OCCURENCE -1 4135 1745914639 2 259/3410522 1 ./photos/vacances_2024/IMG_1024.JPG
# -1 12288 1745725800 2 259/2885690 1 ./projets/rapport.docx
DUPLICATE 12288 1742949000 4 259/4065333 -1 ./archives/v1/rapport.docx
DUPLICATE 12288 1743000000 4 259/4068888 -1 ./archives/v2/rapport.docx
#DUPTYPE_FIRST_OCCURENCE -1 12288 1745725800 2 259/2885690 1 ./projets/rapport.docx
Capture d'écran mentionnée : Un exemple du contenu du fichier results.txt.
Chaque groupe de doublons est séparé par un espace.
- La première ligne d'un groupe est considérée comme l'original.
rdfind
utilise un système de classement (priorité) pour décider quel fichier est l'original. Par défaut, il privilégie le fichier se trouvant dans le répertoire le plus proche de la racine du scan. - Les lignes suivantes, préfixées par
DUPLICATE
, sont les doublons identifiés.
Ce fichier est la clé de voûte de rdfind
. Avant d'entreprendre la moindre action de suppression, il est impératif de l'examiner attentivement.
II. Stratégies de suppression et options avancées
Maintenant que nous savons comment identifier les doublons, explorons les différentes stratégies pour nous en débarrasser. rdfind
offre une flexibilité qui nous permet de choisir l'approche la plus sûre et la plus adaptée à notre besoin.
A. La suppression "sèche" : Le mode -dryrun
Avertissement : C'est sans doute l'option la plus importante derdfind
. Ne lancez JAMAIS une opération de suppression ou de modification sans avoir au préalable effectué une simulation avec-dryrun
.
L'option -dryrun true
simule une action sans réellement l'exécuter. Elle vous montre exactement ce que rdfind
ferait si vous lanciez la commande pour de vrai. C'est votre filet de sécurité.
Supposons que nous voulions supprimer les doublons. Nous ajoutons l'option -deleteduplicates true
(que nous verrons en détail plus bas) et -dryrun true
.
Bash
# Simuler la suppression des doublons dans le répertoire '~/archives'
rdfind -deleteduplicates true -dryrun true ~/archives
La sortie ne sera pas dans results.txt
, mais directement dans le terminal. Elle listera les fichiers qui seraient supprimés, vous permettant de valider votre action sans risque.
B. Remplacer les doublons par des liens (Hard Links)
Souvent, la suppression pure et simple n'est pas la meilleure solution. Certains programmes ou scripts pourraient dépendre du chemin d'accès d'un fichier dupliqué. Le supprimer pourrait casser une dépendance.
rdfind
propose une alternative brillante : remplacer les doublons par des liens durs (hard links) avec l'option -makehardlinks true
.
Un lien dur est comme un second nom pour un même fichier. Imaginez un fichier physique sur votre disque (un ensemble de données). Ce fichier a un identifiant unique (un inode). Un lien dur est simplement une nouvelle entrée dans le système de fichiers qui pointe vers le même inode. Pour le système et pour l'utilisateur, il apparaît comme un fichier normal, mais il n'occupe pas d'espace disque supplémentaire.
# Étape 1 : Simulation avec -dryrun
rdfind -makehardlinks true -dryrun true ~/documents
# Étape 2 : Si la simulation est correcte, exécution réelle
rdfind -makehardlinks true ~/documents
Cette commande va parcourir le répertoire ~/documents
, et pour chaque groupe de doublons, elle supprimera les fichiers "doublons" et les remplacera par un lien dur pointant vers le fichier "original". L'avantage est double :
- Gain d'espace : L'espace disque est libéré, car il n'y a plus qu'une seule copie des données.
- Transparence : Les chemins d'accès des anciens fichiers restent valides. Les applications qui les utilisaient continueront de fonctionner sans modification.
C. La suppression définitive : -deleteduplicates true
C'est l'option la plus directe, mais aussi la plus dangereuse. Elle supprime purement et simplement les fichiers identifiés comme des doublons, en ne conservant que l'original.
L'algorithme de rdfind
pour choisir l'original est basé sur un classement. Par défaut, le fichier le plus "haut" dans l'arborescence (le plus proche de la racine du scan) est conservé. Vous pouvez influencer ce classement avec des options comme -mtime
(privilégier le plus récent) ou -atime
(privilégier le plus récemment accédé).
Le processus doit être méthodique et prudent :
- Sauvegardez vos données importantes. On ne le répétera jamais assez.
- Lancez une analyse simple pour générer
results.txt
:rdfind ~/medias
- Examinez
results.txt
pour vous assurer que les fichiers listés sont bien des doublons sans importance et que les "originaux" choisis vous conviennent. - Lancez une simulation :
rdfind -deleteduplicates true -dryrun true ~/medias
Examinez la sortie de la simulation. Si tout est parfait, et seulement si tout est parfait, lancez la commande de suppression réelle :
rdfind -deleteduplicates true ~/medias
D. Ignorer des fichiers et des répertoires
Il est souvent utile d'exclure certains chemins de l'analyse. Par exemple, les répertoires de gestion de version comme .git
ou les dossiers de cache. rdfind
propose plusieurs options pour cela :
-ignore "regex"
: Permet d'ignorer les chemins qui correspondent à une expression régulière.-followsymlinks false
: Par défaut àfalse
, cette option (si mise àtrue
) demande àrdfind
de suivre les liens symboliques, ce qui peut être risqué si vous ne maîtrisez pas parfaitement votre arborescence. Il est conseillé de la laisser àfalse
.-ignoreempty false
: Par défaut,rdfind
ignore les fichiers vides. Mettez cette option àtrue
si vous voulez aussi les détecter.
Exemple concret : Analyser un répertoire de projets en ignorant les dossiers .git
et node_modules
.
# Les expressions sont séparées par des barres verticales |
rdfind -ignore "\.git|node_modules" ~/projets
III. Cas pratiques et bonnes pratiques
Mettons maintenant en pratique nos connaissances avec des scénarios réels.
A. Nettoyer son répertoire "Téléchargements"
C'est le cas d'usage par excellence. Ce répertoire est souvent un chaos de fichiers renommés, de versions multiples et d'archives téléchargées plusieurs fois.
- Navigation :
cd ~/Téléchargements
- Analyse :
rdfind .
(le.
désigne le répertoire courant) - Inspection :
less results.txt
. Vous y trouverez probablement desarchive.zip
,archive(1).zip
, etc. - Action : La stratégie des liens durs est souvent excellente ici pour gagner de l'espace sans rien casser.
- Simulation :
rdfind -makehardlinks true -dryrun true .
- Exécution :
rdfind -makehardlinks true .
- Simulation :
B. Gérer une collection de photos
Les collections de photos sont un autre nid à doublons, souvent à cause d'imports multiples depuis un appareil ou de copies manuelles.
Note : rdfind
compare le contenu binaire des fichiers, pas leur apparence visuelle. Il ne trouvera pas de photos similaires mais redimensionnées ou retouchées. Il trouvera uniquement des copies exactes.
Ici, la suppression peut être plus appropriée, car on souhaite souvent n'avoir qu'une seule copie "maîtresse" de chaque photo.
- Analyse :
rdfind ~/Images/MaCollection
- Inspection minutieuse de
results.txt
. - Simulation de suppression :
rdfind -deleteduplicates true -dryrun true ~/Images/MaCollection
- Suppression : Si la simulation est concluante,
rdfind -deleteduplicates true ~/Images/MaCollection
.
C. Automatisation avec Cron
Pour les administrateurs système, rdfind
peut être utilisé pour surveiller des partages de fichiers. On peut imaginer un script exécuté par une tâche cron
qui génère un rapport hebdomadaire des doublons.
Avertissement : N'automatisez JAMAIS une action de suppression (-deleteduplicates
) ou de modification (-makehardlinks
). Utilisez l'automatisation uniquement pour le reporting.
Créez un script scan_doublons.sh
:
#!/bin/bash
DATE=$(date +"%Y-%m-%d")
LOG_DIR="/var/log/rdfind"
TARGET_DIR="/srv/partages"
REPORT_FILE="$LOG_DIR/report-$DATE.txt"
mkdir -p "$LOG_DIR"
# Lance rdfind et redirige la sortie de results.txt vers un fichier daté
rdfind -outputname "$REPORT_FILE" "$TARGET_DIR"
Rendez le script exécutable (chmod +x scan_doublons.sh) et ajoutez une entrée à votre crontab (crontab -e) pour l'exécuter tous les dimanches à 2h du matin :
0 2 * * 0 /chemin/vers/votre/script/scan_doublons.sh
D. Pièges courants et comment les éviter
- Oublier
-dryrun
: Le plus grand danger. Prenez l'habitude de TOUJOURS l'utiliser avant une commande destructive. - Lancer
rdfind
sur/
: Ne lancez jamaisrdfind
sur la racine du système de fichiers. Vous risquez de traiter des fichiers système critiques. Ciblez toujours des répertoires spécifiques (/home
,/srv
,/var/www
, etc.). - Mal comprendre les liens : Assurez-vous de bien comprendre la différence entre un lien symbolique et un lien dur avant d'utiliser
-makehardlinks
. Un lien dur est plus robuste mais ne peut pas pointer vers un fichier sur un autre système de fichiers (un autre disque/partition). - Permissions : Lancez
rdfind
avec un utilisateur qui a les droits de lecture sur tous les fichiers à scanner et les droits d'écriture sur les fichiers à modifier/supprimer.
Pour aller plus loin
- Documentation officielle : La source la plus fiable reste la page de manuel. Tapez
man rdfind
dans votre terminal pour une liste exhaustive et détaillée de toutes les options. - Alternatives : Bien que
rdfind
soit excellent, d'autres outils existent dans la même catégorie.fdupes
est un autre classique, etjdupes
est une version plus performante de ce dernier. Les comparer peut être un exercice intéressant. - Combinaison avec d'autres outils : La puissance de la ligne de commande réside dans la composition. Vous pouvez combiner
rdfind
avecfind
pour des recherches encore plus ciblées. Par exemple, ne chercher des doublons que parmi les fichiers.iso
de plus de 1 Go.
Conclusion
rdfind
incarne la philosophie Unix : un outil qui fait une seule chose, mais qui la fait à la perfection. Sa vitesse, sa précision et sa flexibilité en font un allié indispensable pour tout administrateur système, développeur ou simple utilisateur soucieux de la propreté de son système de fichiers.
En maîtrisant sa logique, en particulier le processus d'analyse non-destructif via results.txt
et le filet de sécurité qu'est l'option -dryrun
, vous transformez une tâche de nettoyage fastidieuse en une opération chirurgicale, rapide et efficace. Que vous choisissiez la finesse des liens durs pour préserver les chemins d'accès ou l'efficacité de la suppression directe, rdfind
vous donne les pleins pouvoirs. Alors, n'attendez plus : lancez un scan et découvrez combien de gigaoctets se cachent en double sur vos disques.