locate
locate est une commande Unix permettant de localiser (to locate en anglais) un fichier.
Fonctionnement
modifierÀ la différence des autres méthodes de recherche, locate ne cherche pas dans l'arborescence des répertoires les fichiers demandés mais dans une base de données mise régulièrement à jour (au moyen de la commande updatedb, que l'on automatise, si ce n'est pas déjà le cas, au moyen de cron). Cette base de données contient les références vers les fichiers contenus dans les répertoires du système.
L'avantage de cette méthode repose sur la grande rapidité d'une telle recherche. En revanche, tout ajout, suppression ou déplacement d'un fichier survenus entre deux mises à jour ne sera pas répercuté dans la base de données à moins d'une mise à jour manuelle.
Syntaxe
modifierLa syntaxe de locate est simple :
locate <fichier>
où <fichier>
est le nom du fichier.
Il existe des options pour la création de la base de données et d'autres pour l'affichage et la recherche de données dans cette base. Par exemple, -i
effectue une recherche non sensible à la casse, -l X
(ou -n X
) limite le nombre de résultats affichés au nombre X choisi, -r X
ou --regexp=X
recherche des fichiers dans la base de données en utilisant une expression rationnelle X.
Il est aussi possible de rediriger le résultat d'une requête au moyen du pipe vers un programme de tri :
locate -i -l 12 toto | grep bin
affichera les douze premiers résultats pour la requête non sensible à la casse de la chaîne toto en se limitant à ceux dans lesquels la chaîne bin apparaît aussi, par exemple : /usr/bin/ToTo
, /mnt/bintoto
ou encore /home/totoro/bin
.
Variante
modifierIl existe une variante plus sécurisée, slocate.
Voir également
modifierLiens externes
modifier- (fr) Page man de locate
- (fr) Page man de updatedb
- (fr) Page man de slocate
- (en) site officiel de plocate