|
|
8.4 Recherche de fichiers (find)
- La commande find recherche les fichiers satisfaisant un ensemble de
critères de sélection à partir d’un répertoire.
- Le principe de find est de
parcourir récursivement l’arborescence du
système de fichiers, et pour chaque élément, de tester chaque critère:
- Si le critère est vérifié alors find teste le critère suivant,
- Sinon, find passe à
l’élément suivant.
- La syntaxe de find est la
suivante:
- La commande find est
très utilisée, principalement pour rechercher
des fichiers par nom (critère -name) et
affichage (critère -print).
- Par exemple:
previous next
Commentaires de cette page
dans le polycopié de cours
Le critère -exec cmde permet d’exécuter
la commande cmde et le critère est considéré
comme vérifié si le code de retour de la commande est nul (exécution sans
problème). La fin de la commande passée en argument au critère -exec doit être indiquée par le caractère point-virgule.
Or, vous avez vu à la section 6
que le caractère point virgule est un
méta-caractère du shell et est interprété par celui-ci comme un séparateur de
commande. Dans le cadre de la commande find, le
caractère point virgule fait partie de la commande donc il faut empêcher son
interprétation par le shell, soit en le précédant par un antislash (\;), soit en l’encadrant par deux quotes (Ž;Ž). D’autre
part, les accolades ({}) utilisées comme
argument d’une commande argument de -exec
représentent le nom de l’élément ayant satisfait les critères précédents.
Lorsqu’aucune action n’est demandée sur les éléments trouvés, la
commande find affiche le nom des éléments. Si
des actions sont demandées et si le critère -print n’est pas présent, seul le résultat de ces
actions, sans les noms des éléments de l’arborescence correspondants, est
affiché.
Par défaut, find ne
déréférence pas les liens symboliques, c.-à-d. find n’essaie pas de savoir si le lien symbolique
référence un répertoire. Pour « traverser » les liens symboliques, il
faut utiliser le critère -follow (avec le
critère -noleaf, voir la page find de la section 1 du manuel en ligne).
Enfin, les critères peuvent être combinés avec les opérateurs
« non » (!), « et »
(-a), « ou » (-o) et groupés avec les parenthèses \( et \).
Voici quelques autres critères de sélection:
- -type x: vrai si entrée de
type x, x peut
être f pour file, d pour directory...
- -user nom: vrai si entrée
appartient à nom
- -size n: vrai si entrée de
taille n blocs
- -mtime n: vrai si entrée
modifiée n jours plus tôt
- Remarques: n = exactement
n, +n et
-n pour >n
et <n, respectivement
Par exemple:
L’illustration interactive en mode commande qui suit
vous présente des exemples d’utilisation de la commande find. Vous n’allez voir que la troisième des quatre
parties de cette illustration interactive qui couvre le contenu de plusieurs
pages du cours.
« Commande “find” »
INF, Télécom SudParis, CSC 3001,
Sept. 2014
|
|