Maîtriser find sous Linux : nom, taille, date et droits
Apprenez à utiliser find sous Linux pour chercher des fichiers par nom, taille, date et permissions, avec -exec, -delete et tests sûrs.

- Difficulté
- Facile
find est l’un des outils les plus utiles de la ligne de commande Linux pour localiser des fichiers et agir dessus. Bien utilisé, il permet de chercher précisément par nom, taille, date ou permissions, puis d’enchaîner avec une commande ou une suppression contrôlée.
Ce tutoriel est pensé pour débuter sans prendre de mauvais réflexes. Vous allez construire des recherches simples, les combiner pas à pas, puis apprendre à utiliser -exec, -delete et quelques tests de sécurité avant toute action destructive.
Prérequis
- Avoir accès à un terminal Linux.
- Connaître les commandes de base comme
pwd,lsetcd. - Disposer d’un dossier de test sur lequel vous pouvez travailler sans risque.
Matériel nécessaire
- Un terminal Linux
- Un dossier de test contenant quelques fichiers et sous-dossiers
- Les droits suffisants pour lire le contenu recherché
Étapes
Choisir un dossier de départ sûr
Placez-vous d’abord dans un répertoire que vous connaissez, puis affichez son chemin avec
pwd. Si vous voulez limiter la recherche au dossier courant, gardez.comme point de départ.Lancez une première commande très simple :
find .. Vous verrez immédiatement quefindparcourt récursivement le dossier courant et tous ses sous-dossiers.Lister seulement les fichiers ou seulement les dossiers
Ajoutez le test de type pour filtrer ce que vous voulez voir. Par exemple, utilisez
find . -type fpour les fichiers etfind . -type dpour les répertoires.Faites ce test avant toute recherche plus précise. Il vous aide à vérifier que le périmètre parcouru est déjà correct.
Filtrer les noms avec un motif simple
Recherchez ensuite par nom avec
-name. Par exemple :find . -type f -name "*.log"pour afficher les fichiers dont le nom se termine par.log.Si vous voulez ignorer la casse, utilisez
-inameà la place de-name. Cela permet de trouver à la foisrapport.txtetRAPPORT.TXTavec le même motif.Cibler un fichier exact ou une partie de chemin
Pour retrouver un nom exact, donnez simplement ce nom à
-name, par exemplefind . -type f -name "notes.txt". C’est la forme la plus directe pour vérifier si un fichier existe quelque part sous un dossier.Si vous devez viser une portion de chemin et pas seulement le nom final, utilisez
-path, par exemplefind . -path "*/archive/*.log". Vous pouvez ainsi filtrer selon l’emplacement des fichiers dans l’arborescence.Mesurer la taille des fichiers recherchés

Ajoutez ensuite un filtre de taille avec
-size. Par exemple,find . -type f -size +10Mcherche les fichiers de plus de 10 mébioctets, tandis quefind . -type f -size -1Mcible les plus petits.Vous pouvez aussi chercher une taille exacte avec
-size 1M, même si en pratique on travaille souvent avec+et-. Pensez à garder-type fpour éviter que des répertoires ne compliquent la lecture des résultats.Limiter les résultats par date de modification
Pour chercher par ancienneté, utilisez les tests de temps comme
-mtime. Par exemple,find . -type f -mtime -7affiche les fichiers modifiés il y a moins de 7 jours, etfind . -type f -mtime +30ceux modifiés il y a plus de 30 jours.Cette recherche est très utile pour repérer des fichiers récents, des journaux anciens ou des éléments à archiver. Faites d’abord afficher la liste seule avant d’envisager une action.
Examiner les permissions avant d’agir

Utilisez
-permpour filtrer selon les permissions. Une commande commefind . -type f -perm -u+wpermet de chercher les fichiers sur lesquels le propriétaire a le droit d’écriture.Ce filtre sert surtout à préparer une revue ciblée. Avant toute modification massive, affichez toujours la liste et inspectez quelques entrées avec
ls -l.Combiner plusieurs critères proprement
Assemblez ensuite les tests pour obtenir une recherche utile. Par exemple :
find . -type f -name "*.log" -size +10M -mtime +30pour repérer de gros journaux anciens.Quand vous ajoutez un critère, relancez la commande et vérifiez que le nombre de résultats baisse comme prévu. Cette progression évite de construire une expression fausse d’un seul bloc.
Afficher les résultats avant toute action
Avant d’utiliser
-execou-delete, faites toujours une exécution d’inspection. Conservez la même commande sans action finale, ou terminez-la provisoirement par-printpour vérifier exactement ce qui sera visé.Prenez l’habitude de lire plusieurs chemins complets, pas seulement les premiers. Une recherche correcte en apparence peut encore inclure un sous-dossier inattendu.
Exécuter une commande sur chaque résultat avec -exec

Quand la sélection est validée, ajoutez
-execpour lancer une commande sur chaque fichier trouvé. Un exemple sûr consiste à afficher des détails :find . -type f -name "*.log" -exec ls -l {} \;.Le placeholder
{}représente l’élément trouvé, et\;termine la commande transmise àfind. Commencez par des actions non destructives commelsoucatsur un petit lot de test.Tester une action inoffensive avant de modifier
Remplacez d’abord l’action finale par quelque chose de visible et sans danger. Par exemple, utilisez
find . -type f -name "*.tmp" -exec echo {} \;pour voir quels fichiers seraient concernés.Vous pouvez ensuite passer à une commande réelle seulement si la liste affichée est correcte. Cette étape est essentielle quand vous préparez un renommage, un déplacement ou une suppression.
Supprimer avec -delete seulement après validation
Utilisez
-deleteuniquement après avoir validé exactement la même recherche sans cette action. Un exemple prudent est : d’abordfind . -type f -name "*.tmp" -print, puis seulement si la liste est bonne,find . -type f -name "*.tmp" -delete.Réservez cette action à un dossier de test ou à des fichiers clairement identifiés. Quand un doute subsiste, préférez encore une étape de revue plutôt qu’une suppression immédiate.
Répéter la recherche dans un répertoire de test
Créez ou utilisez un petit dossier d’essai avec quelques fichiers aux noms, tailles et dates variés. Rejouez-y vos commandes une à une pour observer comment chaque filtre modifie le résultat.
Testez ensuite une combinaison complète, par exemple une recherche par nom et date, puis remplacez l’affichage par
-exec echo {} \;. Vous prendrez ainsi de bons réflexes avant de travailler sur des données réelles.
Erreurs fréquentes & dépannage
L’erreur la plus fréquente consiste à partir d’un chemin trop large, puis à ajouter trop vite une action destructive. Travaillez toujours depuis un point de départ maîtrisé et affichez la liste avant toute suppression.
Une autre erreur courante est d’oublier les guillemets autour des motifs comme "*.log". Le shell peut alors développer le motif lui-même, ce qui change le comportement attendu de find.
Beaucoup de débutants mélangent aussi recherche et action en une seule tentative. Construisez d’abord la sélection, validez-la visuellement, puis ajoutez -exec ou -delete dans un second passage.
Astuces & pour aller plus loin
Commencez chaque recherche par la version la plus simple : point de départ, -type, puis un seul filtre métier comme -name ou -mtime. Ajoutez les autres critères un à un, en vérifiant le résultat à chaque fois.
Pour les opérations sensibles, remplacez d’abord l’action réelle par echo via -exec. Cette habitude rend visibles les chemins ciblés et aide à repérer une condition trop large.
Quand une recherche devient longue, conservez-la dans votre historique de shell et rejouez-la en modifiant un seul test. Vous évitez ainsi les fautes de frappe et vous apprenez plus vite quels filtres changent vraiment la sélection.
Questions fréquentes
À quoi sert le point . dans find . ?
Il indique que la recherche commence dans le répertoire courant. find parcourt ensuite ce dossier et ses sous-répertoires de façon récursive.
Pourquoi mettre le motif entre guillemets dans -name "*.log" ?
Les guillemets empêchent le shell de développer le motif avant l’exécution de find. C’est find qui doit recevoir le motif tel quel pour faire la comparaison.
Quelle différence pratique entre -name et -iname ?
-name tient compte de la casse, alors que -iname l’ignore. Le second est utile si vous ne savez pas comment le fichier a été capitalisé.
Comment réduire le risque avant d’utiliser -delete ?
Exécutez d’abord exactement la même recherche avec un simple affichage, par exemple avec -print. Si la liste est correcte, relancez ensuite la commande avec -delete.
Quand utiliser -exec au lieu de supprimer directement ?
Utilisez -exec quand vous voulez appliquer une commande aux fichiers trouvés, par exemple afficher des détails avec ls -l. C’est aussi un bon moyen de tester une recherche avec echo avant une action plus sensible.
Conclusion
Vous savez maintenant construire une recherche find utile à partir d’un point de départ sûr, puis la filtrer par nom, taille, date et permissions. Vous avez aussi vu comment valider vos résultats avant d’ajouter une action avec -exec ou une suppression avec -delete.
Le plus important n’est pas de mémoriser toutes les variantes d’un coup, mais d’adopter une méthode fiable. Cherchez d’abord, vérifiez ensuite, puis agissez seulement quand la sélection affichée correspond exactement à votre intention.