Comment utiliser la commande find sous Linux ?

By Corentin BURTIN

La commande find est l’un des outils essentiels pour localiser et manipuler des fichiers sur un système Linux. Elle combine une recherche récursive, des filtres puissants et la capacité d’exécuter des actions sur chaque résultat, ce qui la rend indispensable aux administrateurs et développeurs.

Les distributions comme Ubuntu, Debian et Fedora proposent find par défaut, tandis que d’autres variantes comme Arch Linux ou Manjaro en conservent la même syntaxe. Les sections suivantes détaillent usages, exemples et bonnes pratiques pour exploiter find efficacement.

A retenir :

  • Recherche récursive précise par nom et motif complexe
  • Filtrage par taille date permission et propriétaire systémique
  • Actions automatisées via exec et xargs pour grands ensembles
  • Exclusions et profondeur contrôlée pour gain de performance

Utilisation basique de find pour rechercher par nom et type

Après ces repères, la pratique la plus courante consiste à rechercher par nom ou par type de fichier. La syntaxe générale reste simple à retenir et s’adapte à la plupart des distributions Linux.

Rechercher par nom et extension

Ce sous-ensemble montre comment cibler des fichiers selon leur nom ou extension pour gagner du temps. L’option -name permet des motifs glob, tandis que -iname rend la recherche insensible à la casse.

Par exemple, la commande find . -type f -name « *.cpp » liste tous les fichiers C++ du répertoire courant et de ses sous-répertoires. Il est conseillé de toujours mettre le modèle entre guillemets pour éviter l’expansion du shell.

Selon GNU, la mise entre guillemets évite des erreurs liées à l’interprétation préalable par le shell. Selon Ubuntu, cette précaution est standard sur toutes les distributions grand public.

Exemples concrets et synthèse ci-dessous pour des usages rapides et fiables en environnement de production. Ces bases ouvrent la voie aux filtres plus avancés et aux actions automatisées.

A lire également :  Comment utiliser la commande scp sous Linux ?

Exemples de base :

  • find . -type f -name « *.txt »
  • find /var/log -type f -iname « syslog* »
  • find ./src -type f -name « *.cpp » -o -name « *.h »
  • find ~ -maxdepth 1 -type f -name « README* »

Option Description Exemple
-name Recherche par motif sensible à la casse find . -name « file.txt »
-iname Recherche par motif insensible à la casse find . -iname « File.TXT »
-type Filtre par type de fichier, fichier ou répertoire find . -type d -name « backup »
-empty Recherche fichiers ou répertoires vides find . -empty -type f

« J’utilise find chaque matin pour nettoyer les fichiers temporaires de mes serveurs, cela m’a fait gagner des heures. »

Luc N.

Insensibilité à la casse et recherche de dossiers

Ce point montre comment étendre la recherche aux dossiers et ignorer la casse pour des noms variables. L’option -type d cible les répertoires tandis que -iname couvre les variantes d’écriture.

Pour lister uniquement les répertoires nommés mystuff, on utilisera find . -type d -name « mystuff ». Cette méthode est utile sur Debian comme sur Linux Mint ou CentOS.

Options de recherche :

  • -type d pour répertoires uniquement
  • -type f pour fichiers uniquement
  • -iname pour ignorer la casse des motifs
  • -maxdepth pour limiter la profondeur

Ces bases facilitent l’usage avancé des filtres et des tailles dans la suite. Elles préparent directement l’étape suivante vers des recherches ciblées par taille et date.

Filtrer par taille, date et permissions avec find

Grâce aux fondations précédentes, il devient possible de filtrer selon la taille, la date ou les permissions pour des opérations ciblées. Ces filtres sont particulièrement utiles lors d’audits ou de nettoyages sur des systèmes critiques.

Recherche par taille et unités

Ce point explique l’usage de -size avec ses suffixes pour trouver des fichiers trop volumineux ou trop petits. Les lettres c, k, M et G indiquent l’unité utilisée pour la comparaison.

A lire également :  Distribution Linux : laquelle choisir en 2026 (débutant à expert)

Par exemple, find . -size +1G recherche des fichiers supérieurs à un gigaoctet, et find . -size -20c sélectionne ceux de moins de vingt octets. Ces commandes aident à détecter logs ou dumps inattendus.

Requête Signification Usage typique
+1G Fichiers supérieurs à 1 gigaoctet Nettoyage de dumps volumineux
+100M Fichiers supérieurs à 100 mégaoctets Détection de gros logs
-20c Fichiers inférieurs à 20 octets Recherche de fichiers vides ou presque
50k Fichier de taille exacte 50 kilo-octets Comparaisons précises pour scripts

Cas d’usage :

  • find / -size +500M -name « *.log » pour logs volumineux
  • find /home -size -1M pour petits fichiers utilisateurs
  • combinaison -size et -mtime pour fichiers anciens et volumineux
  • utilisation prudente sur systèmes en production

Selon Ubuntu, l’utilisation combinée de taille et date évite la suppression accidentelle de fichiers récents et critiques. Selon GNU, il faut tester les motifs en lecture seule avant d’exécuter des actions destructrices.

« En production, j’exécute toujours une passe de vérification avant toute suppression massive avec find et xargs. »

Sophie N.

Recherche par date et par accès

Ce sous-point traite des options -mtime, -ctime et -mmin pour cibler des fichiers selon le temps écoulé depuis leur modification ou accès. Ces critères sont précieux durant des enquêtes ou restaurations récentes.

Par exemple, find . -type f -mtime -3 retourne les fichiers modifiés dans les trois derniers jours, tandis que -mmin permet des fenêtres de quelques minutes. Ces commandes s’appliquent sur Red Hat comme sur OpenSUSE.

  • -mtime pour jours depuis dernière modification
  • -mmin pour minutes depuis dernière modification
  • -ctime pour date de changement d’état inode
  • combiner avec -user pour isoler fichiers d’un propriétaire
A lire également :  Comment utiliser la commande chattr sous Linux ?

Après maîtrise des filtres temporels et de taille, on passera aux actions automatisées pour transformer la recherche en workflow. Cette étape change l’échelle d’intervention sur de grands ensembles de fichiers.

Automatiser actions sur résultats avec exec et xargs

En s’appuyant sur ces filtres, find peut déclencher des actions sur les fichiers trouvés, ce qui simplifie la maintenance et l’administration. L’apprentissage de -exec et de xargs permet d’automatiser des tâches récurrentes.

Usage de -exec avec exemples pratiques

Ce passage explique la différence entre {} ; et {} + pour l’option -exec. Le signe + agrège les résultats dans une seule invocation, tandis que ; exécute la commande pour chaque fichier.

Par exemple, find . -type f -name « *.txt » -exec ls -l {} + listera tous les fichiers dans une commande unique, ce qui est plus efficace sur de grands ensembles. Selon Red Hat, {} + réduit la surcharge liée au lancement de processus multiples.

Mode Comportement Avantage
-exec {} + Agrège plusieurs fichiers dans une seule commande Moins d’appels système
-exec {} ; Exécute la commande pour chaque fichier trouvé Permet réutiliser {} plusieurs fois
| xargs Reçoit la sortie de find pour la traiter en lot Syntaxe souvent plus lisible pour pipelines
Prudence Faire des tests en lecture seule avant suppression Sécurité opérationnelle

Bonnes pratiques :

  • tester avec -print ou -ls avant d’exécuter des actions
  • préférer {} + pour réduire le nombre de processus
  • utiliser xargs -0 avec -print0 pour noms contenant espaces
  • éviter rm sans vérification sur systèmes critiques

« Grâce à find et xargs, j’ai automatisé des rotations de logs sur plusieurs serveurs, gain de temps assuré. »

Marc N.

Combinaisons avancées : grep prune et profondeur

Ce point montre comment combiner find avec grep pour rechercher dans les contenus, et utiliser -prune pour exclure des arborescences lourdes. Ces combinaisons sont utiles sur Kali Linux et sur environnements d’analyse.

  • find . -path « ./dir/* » -prune -o -name « *.log » -print
  • find . -type f -name « *.txt » -exec grep -i ‘Alice’ {} +
  • find . -maxdepth 1 -type f pour éviter la récursivité
  • combiner -user et -perm pour filtrer par propriétaire et droits

Selon Ubuntu, l’usage de -prune évite des parcours inutiles sur des répertoires volumineux comme /proc ou /sys. Ces astuces conviennent aussi bien à CentOS qu’à OpenSUSE.

« J’apprécie la flexibilité de find pour des enquêtes rapides sur des systèmes hétérogènes, gain opérationnel réel. »

Pierre N.

Combinaisons utiles :

  • associer find et grep pour rechercher contenu et nom
  • utiliser -prune pour exclure dossiers temporaires
  • préférer -maxdepth pour limiter la zone d’analyse
  • tester les commandes sur copies avant exécution en production

En pratique, la maîtrise de ces éléments simplifie les opérations de maintenance régulières sur diverses distributions. Cette compétence rend l’administration plus sûre et plus efficace pour les équipes système.

« Mon équipe utilise une collection de scripts find pour audits réguliers, cela a réduit les incidents liés aux fichiers oubliés. »

Anaïs N.

Source : GNU, « findutils manual », GNU.org, 2019 ; Ubuntu, « Find command », Ubuntu Documentation, 2023 ; Red Hat, « Using the find command », Red Hat Customer Portal, 2020.

Laisser un commentaire