Locate
# Locate

locate est une commande Unix permettant de localiser (to locate en anglais) un fichier.

## Fonctionnement

À 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

La 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

Il existe une variante plus sécurisée, slocate.

## Voir également

* Commandes UNIX
