find
find
est unecommande UNIXpermettant de chercher des fichiers dans un ou plusieursrépertoiresselon des critères définis par l'utilisateur.
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 àLocateou d'autres commandes similaires,find
ne fait pas appel à un index pour stocker les informations à rechercher.
Utilisation
[modifier|modifier le code]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:
findchemin[chemin2...][options][action]
La syntaxe defind
permet de faire appel auxfiltresetexpressions 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-typef-a-mtime-7-print
Recherche de la chaîneWikipediadans tous les fichiers terminés par.txtsous /home:
find/home-typef-a-name'*.txt'-execgrep-HWikipedia{}\;
Suppression des fichiers sous /tmp de plus de 14 jours ou nomméscore:
find/tmp-typef-a\(-mtime+14-o-name'core'\)-execrm{}\;
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-typef-a-mtime+14|xargsrm
Voir aussi
[modifier|modifier le code]- Union-Find,l'implantation de la structure de donnée des partitions d'ensemble.
Liens externes
[modifier|modifier le code]- (fr)Introduction à la commande find
- (fr)Page man de find
- (en)GNU Findutilsavecxargsetlocate.
- (en)Tutoriel