Knowledge base dedicated to Linux and applied mathematics.
Accueil > Linux > Commande du jour > Rechercher un fichier : locate, find et which
Nous souhaitons retrouver au sein de notre arborescence, un ou plusieurs fichiers. Les commandes locate, find et which vont nous permettre d’effectuer cette tâche. On évoquera également leurs différences et la manière dont elles opèrent.
La commande locate permet de trouver très rapidement un fichier. Contrairement à ce que l’on pourrait penser locate ne vas pas chercher le fichier au sein de l’arborescence, mais au sein d’une base de données contenant la liste des fichiers existants. De ce fait, il se peut que lorque vous venez de créer un fichier ou un répertoire que ce dernier ne soit pas dans cette base de données, il faut pour cela réactualiser la base de données à l’aide de la commande updatedb.
Ce qui est a fortiori un inconvénient. à€ noter que le système sur lequel vous travaillez s’occupe de mettre à jour cette base de données. La fonction locate fonctionne comme suit :
locate nom_de_ficher
nadir@ipower:~$ locate article1.tex
/home/nadir/Desktop/Work/Article1/article1.tex
La commande find, contrairement à locate va chercher le fichier au sein de l’arborescence. La syntaxe est la suivante :
find répertoire -name nom_du_fichier
o๠répertoire désigne le répertoire dans lequel on recherche le fichier, s’il on veut rechercher un fichier dans toute l’arborescence, ce qui est très long ! On peut remplacer répertoire par /, cela signifie qu’on effectue la recherche à partir de la racine et donc dans toute l’arborescence. Pour faire une recherche dans le répertoire courant on utilise le ., comme dans l’exemple suivant :
nadir@ipower:~$ find . -name article1.tex
./Desktop/Work/Article1/article1.tex
On peut effectuer une recherche dans un répertoire :
nadir@ipower:~$ find /home/nadir/ -name article1.tex
/home/nadir/Desktop/Work/Article1/article1.tex
ou bien au sein de toute l’arborescence :
nadir@ipower:~$ find / -name article1.tex
/home/nadir/Desktop/Work/Article1/article1.tex
Lorsque l’on rechercher un répertoire on utilise la syntaxe suivante :
find répertoire -type d -name nom_du_répertoire
o๠répertoire désigne le répertoire dans lequel on recherche le fichier.
Recherchons par exemple le(s) répertoire(s) commençant par Wor
au sein du répertoire home.
nadir@ipower:~$ find /home/ -type d -name Wor*
/home/nadir/Desktop/Work
Il existe bien évidemment d’autres options de la commande find. Je vous invite donc à consulter le manuel en ligne de commande.
La commande which permet de localiser une commande de votre système.
Regardons l’exemple suivant : dans quel répertoire se trouve la commande lpr
nadir@ipower:~$ which lpr
/usr/bin/lpr
Bonne recherche à tous ;-)