Retrouver un fichier enfoui dans une arborescence Linux devient souvent une corvée coûteuse en temps et en énergie lorsque l’on ignore les bons outils et options disponibles.
La commande find reste le pivot pour des recherches précises, complétée par locate, fd et grep selon les besoins ; passez à la rubrique A retenir :
A retenir :
- Recherche précise en temps réel sur l’ensemble du système de fichiers
- Filtrage avancé par nom, taille, date, permissions, propriétaire et type
- Actions automatisées sur résultats, suppression, copie, modification de droits
- Complémentarité avec locate, updatedb, grep, fd pour rapidité et précision
Rechercher par nom et type avec la commande find
Fort de ces éléments, examinons l’usage du find pour localiser par nom et par type dans l’arborescence.
Selon le manuel GNU findutils, find interroge le système de fichiers en temps réel et propose des critères très fins pour restreindre les résultats.
Commande
But
Exemple
find
Recherche en temps réel selon critères multiples
find /home -type f -name « rapport.txt »
locate
Recherche très rapide via index pré-construit
locate rapport.txt
fd
Alternative moderne, rapide et ergonomique
fd rapport -e txt
tree
Exploration visuelle en arborescence
tree -L 2 /var/www
Options par nom :
- -name pour recherche exacte sensible à la casse
- -iname pour recherche insensible à la casse
- motifs avec jokers pour extensions et modèles
- -type f ou -type d pour filtrer par type
Recherche sensible ou insensible à la casse
Ce volet porte sur la casse et les motifs qui influencent la précision de la recherche avec find.
L’option -name est sensible à la casse, tandis que -iname ignore la casse et renvoie des variantes de noms.
« J’ai gagné des heures en passant de recherches manuelles au filtrage -iname sur des serveurs partagés. »
Alex N.
Utiliser jokers et expressions régulières
Ce point étend la recherche par motifs et explique pourquoi les guillemets sont nécessaires autour des jokers.
Mettez toujours le motif entre guillemets pour éviter l’expansion par le shell, par exemple -name « *.log » pour tous les fichiers journaux.
Filtrer par taille, date et permissions pour cibler précisément
Après avoir vu les motifs, abordons les critères non nominaux comme la taille, la date et les permissions afin de restreindre massivement les résultats.
Selon la page de manuel find, les options -size, -mtime, -mmin et -perm offrent des coupes fines pour des opérations automatisées en production.
Critères avancés :
- -size pour filtrer par octets, kilo, méga et giga
- -mtime et -mmin pour date de modification et plages temporelles
- -perm pour permissions exactes ou masquées
- -user et -group pour filtrer par propriétaire
Recherches par taille et plage temporelle
Cette sous-partie détaille la combinaison de tailles et de dates pour isoler fichiers volumineux ou récents.
Exemples pratiques : -size +100M pour gros fichiers et -mtime -1 pour fichiers modifiés dans les dernières vingt-quatre heures.
« J’utilise -size et -mtime ensemble pour purger d’anciens backups lors d’audits de capacité. »
Claire N.
Permissions, propriétaire et absence d’utilisateur
Ce segment explique la recherche des fichiers sensibles par permissions ou par propriétaire afin d’anticiper des risques de sécurité.
Les options -perm, -nouser et -nogroup permettent de détecter des fichiers potentiellement dangereux ou orphelins pour les corriger rapidement.
Agir sur les résultats avec exec, xargs et outils complémentaires
Une fois les fichiers identifiés, il faut agir ; voyons comment exécuter des commandes sûres et rapides sur les résultats pour automatiser les opérations.
Selon la documentation mlocate, locate et updatedb restent utiles pour des scans rapides, tandis que find reste indispensable pour l’action directe.
Actions automatisées :
- Supprimer en masse avec -delete ou -exec rm {} +
- Copier ou archiver via -exec cp {} /chemin ; ou xargs
- Modifier droits ou propriétaire avec -exec chmod et -exec chown
- Filtrer contenu avec -exec grep ou pipeline vers xargs
Exec versus xargs pour performance et sécurité
Ce passage compare les deux approches et donne des règles pratiques pour éviter les erreurs sur des milliers de fichiers.
Utilisez {} + avec -exec pour grouper les arguments, ou -print0 avec xargs -0 pour gérer les espaces et caractères spéciaux dans les noms.
« J’ai combiné find et xargs pour traiter des millions de fichiers sans surcharger le shell. »
Marc N.
Combiner find avec grep, which, whereis et basename
Cette partie montre comment coupler find avec grep, which, whereis et basename pour enquêter sur les fichiers et binaires.
Exemples utiles : find . -type f -name « *.txt » -exec grep -i « mot » {} + ; which et whereis pour localiser exécutables référencés.
Outil
Rôle
Quand l’utiliser
grep
Recherche de contenu à l’intérieur des fichiers
Après find pour filtrer par contenu
xargs
Passer des lots d’arguments à une commande
Quand le nombre de fichiers est élevé
which
Localiser le binaire d’une commande
Vérifier chemin d’un exécutable
whereis
Trouver binaire, source et man page
Recherche rapide de documentation et binaire
« Cette méthode m’a sauvé lors d’un audit de sécurité en production, grâce à des filtres précis. »
Sophie N.
Source : The GNU Project, « findutils manual », GNU.