find

commande permettant de chercher des fichiers dans un ou plusieurs répertoires

find est une commande UNIX permettant de chercher des fichiers dans un ou plusieurs répertoires selon des critères définis par l'utilisateur.

Find

Informations
Type Utilitaire UNIX (d)
Programme informatiqueVoir et modifier les données sur Wikidata

Par défaut, find retourne tous les fichiers contenus dans l'arborescence du répertoire courant. find permet aussi d'exécuter une action sur chaque fichier retrouvé, ce qui en fait un outil très puissant.

Contrairement à Locate ou d'autres commandes similaires, find ne fait pas appel à un index pour stocker les informations à rechercher.

Utilisation

modifier

find dispose de nombreuses options pour limiter les fichiers selon leurs caractéristiques : taille, date de modification, propriétaire, type, etc.

La syntaxe générale est :

 find chemin [chemin2...] [options] [action]

La syntaxe de find permet de faire appel aux filtres et expressions rationnelles. Voici quelques exemples d'utilisation :

Impression de la liste des fichiers sous /home qui ont été modifiés dans les 7 derniers jours :

 find /home -type f -a -mtime -7 -print

Recherche de la chaîne Wikipedia dans tous les fichiers terminés par .txt sous /home :

 find /home -type f -a -name '*.txt' -exec grep -H Wikipedia {} \;

Suppression des fichiers sous /tmp de plus de 14 jours ou nommés core :

 find /tmp -type f -a \( -mtime +14 -o -name 'core' \) -exec rm {} \;

Recherche du fichier nom.txt récursivement à partir du répertoire courant et écrit le résultat dans le fichier sortie.txt situé sur le répertoire spécifié par chemin :

 find . -name "nom.txt" -print > ./chemin/sortie.txt

En raison de la possibilité d'espaces dans les noms de fichiers (par exemple /tmp/ /etc/passwd), on prendra garde à des constructions telles que :

 find /tmp -type f -a -mtime +14 | xargs rm

Voir aussi

modifier
  • Union-Find, l'implantation de la structure de donnée des partitions d'ensemble.

Liens externes

modifier