Comme son nom l'indique, la commande locate sous Linux est utilisée pour localiser (rechercher) un fichier. Il a la syntaxe suivante :
locate [options] filename
Bien qu'il soit très simple d'utiliser la commande de localisation, elle est accompagnée de nombreux si et de mais. Pour commencer, s'il ne trouve pas un fichier, cela ne signifie pas nécessairement que le fichier n'existe pas sur le système.
Ne soyez pas confus pour le moment. Je vais vous expliquer comment fonctionne la commande de localisation et comment l'utiliser pour rechercher des fichiers.
Utilisation de la commande locate sous Linux
La commande locate fonctionne sur un index, c'est-à-dire une base de données d'emplacements de fichiers. Lorsque vous utilisez la commande, elle fait référence à cet index au lieu de rechercher l'ensemble du système de fichiers. C'est la raison pour laquelle locate est super rapide pour trouver des fichiers sous Linux.
Certaines distributions Linux indexent automatiquement et régulièrement l'intégralité du système de fichiers. Vous pouvez également créer manuellement cet index (je vous le montrerai plus tard dans cet article).
L'utilisation de la commande de localisation est extrêmement simple. Il vous suffit de spécifier le nom du fichier :
locate filename
Le résultat montrera tous les endroits où le fichier que vous avez spécifié a été trouvé.
[email protected]:~$ locate desktop.iso
/home/abhishek/desktop.iso
La meilleure partie est que vous n'avez pas besoin d'être dans un certain répertoire pour trouver le fichier. N'oubliez pas que la commande locate ne recherche pas le système de fichiers mais l'index. C'est pourquoi vous n'avez pas besoin de spécifier un chemin ou un répertoire lors de la recherche de fichiers.
Vous pouvez également effectuer une recherche insensible à la casse en utilisant l'option -i :
[email protected]:~$ locate -i desktop.iso
/home/abhishek/desktop.iso
/home/abhishek/Downloads/Desktop.iso
Gardez à l'esprit que le résultat peut afficher tous les fichiers dont le nom contient le terme de recherche.
[email protected]:~$ locate -i desktop
/home/abhishek/eoan-desktop-amd64.iso
/home/abhishek/Bionic-Desktop-amd64.iso
/home/abhishek/desktop.iso
/home/abhishek/Downloads/Desktop.iso
Vous pouvez également utiliser regex avec locate :
locate -r regex_expression
Utilisation de updatedb pour créer votre propre index pour la commande de localisation
Ceci est juste à titre informatif et je ne pense pas que vous auriez besoin de l'utiliser.
Si vous souhaitez créer un index du répertoire actuel (et de ses sous-répertoires), vous pouvez utiliser la commande updatedb comme ceci :
updatedb -l0 -U my_directory -o index_file
Une fois que vous avez créé ce fichier d'index, vous pouvez demander à la commande locate d'utiliser explicitement cet index :
locate -d index_file file_name
Localisation est-elle meilleure que la commande find ?
Si vous souhaitez rechercher des fichiers dans une structure de répertoires qui ne change pas beaucoup, la commande de localisation est une bonne option. C'est super rapide aussi.
Mais la commande find vous donne beaucoup d'options, spécialement pour effectuer des options de recherche complexes.
Les deux commandes ont leur utilisation. À mon avis, si vous vous sentez paresseux et que vous voulez un résultat rapide, utilisez la localisation. Si le résultat ne vous convient pas, passez à la commande de recherche.
Qu'en pensez-vous ?