Utilisation : Recherche rapide de fichiers en utilisant une base de données pré-indexée (plus rapide que find, mais moins flexible).
Syntaxe de base
locate [option] « motif »
Rechercher un fichier par son nom :
locate "nom_du_fichier.txt"
Pour rechercher tous les fichiers .pdf dans /home/dominique, de manière insensible à la casse :
locate -i "/home/dominique/*.pdf"
Remarques importantes
Base de données : locate utilise une base de données mise à jour périodiquement (généralement via cron). Pour forcer une mise à jour manuelle :
sudo updatedb
Tableau récapitulatif
Voici un tableau récapitulatif des options les plus utiles de la commande locate en Bash, avec des exemples d’utilisation :
| Option | Description | Exemple |
|---|---|---|
| (aucune option) | Recherche un fichier ou dossier dans la base de données. | locate « fichier.txt » |
-i | Recherche insensible à la casse. | locate -i « fichier.TXT » |
-b | Ne recherche que les chemins existants (ignore les liens symboliques cassés). | locate -b « /chemin/valide » |
-c | Compte le nombre de résultats trouvés. | locate -c « *.pdf » |
-l N | Limite le nombre de résultats à N. | locate -l 10 « fichier » |
| Utilise une expression régulière pour la recherche. | locate fichier[0-9].txt | |
-e | N’affiche que les fichiers existants (vérifie en temps réel). | locate -e « fichier_important » |
les Jockers
La commande locate sous Linux n’utilise pas directement les expressions régulières (ni BRE ni ERE). Elle est conçue pour rechercher des fichiers ou des répertoires dans une base de données pré-construite, en se basant sur des motifs de noms de fichiers.
Fonctionnement de locate
- Base de données : locate utilise une base de données mise à jour régulièrement (via updatedb), ce qui la rend très rapide.
- Recherche par motif : Elle utilise des jokers (wildcards) similaires à ceux du shell, et non des expressions régulières.
Syntaxe des motifs avec locate
| Joker | Signification |
|---|---|
| * | Correspond à n’importe quelle chaîne de caractères (y compris vide). |
| ? | Correspond à un seul caractère (n’importe lequel). |
| […] | Correspond à un caractère parmi ceux listés (ex: [abc]). |
| [!…] | Correspond à un caractère non listé (ex: [!abc]). |
Exemples d’utilisation
| Besoin | Commande avec locate |
|---|---|
| Trouver tous les fichiers contenant « test » | locate « *test* » |
| Trouver les fichiers commençant par « doc » | locate « doc* » |
| Trouver les fichiers se terminant par « .txt » | locate « *.txt » |
| Trouver les fichiers avec un caractère inconnu | locate fichier?.txt (ex: « fichier1.txt ») |
| Trouver les fichiers avec un caractère dans une liste | locate fichier[1-3].txt (ex: fichier1.txt, fichier2.txt) |