Rechercher des fichiers avec locate

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 :

OptionDescriptionExemple
(aucune option)Recherche un fichier ou dossier dans la base de données.locate « fichier.txt »
-iRecherche insensible à la casse.locate -i « fichier.TXT »
-bNe recherche que les chemins existants (ignore les liens symboliques cassés).locate -b « /chemin/valide »
-cCompte le nombre de résultats trouvés.locate -c « *.pdf »
-l NLimite le nombre de résultats à N.locate -l 10 « fichier »
Utilise une expression régulière pour la recherche.locate fichier[0-9].txt
-eN’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

JokerSignification
*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

BesoinCommande 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 inconnulocate fichier?.txt (ex: « fichier1.txt »)
Trouver les fichiers avec un caractère dans une listelocate fichier[1-3].txt (ex: fichier1.txt, fichier2.txt)
Retour en haut