Débutant

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.

Maîtriser find sous Linux : nom, taille, date et droits
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, ls et cd.
  • 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

  1. 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 que find parcourt récursivement le dossier courant et tous ses sous-dossiers.

  2. 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 f pour les fichiers et find . -type d pour 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.

  3. 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 fois rapport.txt et RAPPORT.TXT avec le même motif.

  4. Cibler un fichier exact ou une partie de chemin

    Pour retrouver un nom exact, donnez simplement ce nom à -name, par exemple find . -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 exemple find . -path "*/archive/*.log". Vous pouvez ainsi filtrer selon l’emplacement des fichiers dans l’arborescence.

  5. Mesurer la taille des fichiers recherchés

    Un ordinateur portable sur un bureau sobre, avec une interface de terminal floue à l’écran et des mains qui examinent les résultats liés à la taille des fichiers.

    Ajoutez ensuite un filtre de taille avec -size. Par exemple, find . -type f -size +10M cherche les fichiers de plus de 10 mébioctets, tandis que find . -type f -size -1M cible 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 f pour éviter que des répertoires ne compliquent la lecture des résultats.

  6. 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 -7 affiche les fichiers modifiés il y a moins de 7 jours, et find . -type f -mtime +30 ceux 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.

  7. Examiner les permissions avant d’agir

    Gros plan de mains utilisant un ordinateur portable pour vérifier prudemment des permissions de fichiers dans une fenêtre de terminal non lisible.

    Utilisez -perm pour filtrer selon les permissions. Une commande comme find . -type f -perm -u+w permet 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.

  8. Combiner plusieurs critères proprement

    Assemblez ensuite les tests pour obtenir une recherche utile. Par exemple : find . -type f -name "*.log" -size +10M -mtime +30 pour 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.

  9. Afficher les résultats avant toute action

    Avant d’utiliser -exec ou -delete, faites toujours une exécution d’inspection. Conservez la même commande sans action finale, ou terminez-la provisoirement par -print pour 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.

  10. Exécuter une commande sur chaque résultat avec -exec

    Vue par-dessus l’épaule d’une personne lançant une commande dans un terminal flou sur un ordinateur portable, avec une scène très épurée.

    Quand la sélection est validée, ajoutez -exec pour 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 comme ls ou cat sur un petit lot de test.

  11. 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.

  12. Supprimer avec -delete seulement après validation

    Utilisez -delete uniquement après avoir validé exactement la même recherche sans cette action. Un exemple prudent est : d’abord find . -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.

  13. 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.

Commentaires · Aucun commentaire pour l'instant

Soyez le premier à réagir.

Laisser un commentaire