Ceci est une ancienne révision du document !
locate
Pourquoi faire
Dans un terminal, locate permet de localiser immédiatement n'importe quel fichier ou répertoire présent sur votre système.
A la différence de la commande find, locate va vous donner le résultat de votre recherche immédiatement.
locate est en fait un fichier lien vers le programme mlocate
Principe
locate est rapide parce qu'au lieu de parcourir toute l'arborescence du système (comme le fait find), c'est une base de donnée qui contient la liste de tous les fichiers et répertoires qui va fournir le résultat de la recherche.
Cette base de donnée est mise à jour quotidiennement grâce au programme anacron
Sur un PC allumé 24h/24, la base de donnée est updatée chaque jour à 7h30. Sinon si la tâche n'a pu être réalisée à l'heure prévue, c'est 5 minutes après avoir démarré le PC que l'update de cette base sera fait (vous voyez votre voyant disque dur s'activiter pendant 1 ou 2 minutes)
locate indexe tout le système de fichiers, les résultats d'une recherche sans sudo incluront uniquement les fichiers auxquels l'utilisateur exécutant locate a le droit d'accès. Il réalise cela en mettant à jour la base de données en tant que superutilisateur (« root ») mais en la rendant inaccessible aux utilisateurs normaux qui ne peuvent y accéder que via l'utilitaire locate.
plutôt que de relire l'ensemble du contenu de tous les répertoires chaque fois que la base de données est mise à jour, locate conserve des informations d'horodatage dans sa base de données de telle sorte qu'il puisse savoir si le contenu d'un répertoire a changé sans le relire. Cela rend les mises à jour plus rapides et sollicite moins le disque dur. Cette fonctionnalité est uniquement disponible dans mlocate.
Installation
locate est installé normalement de base sur ubuntu sinon :
sudo apt-get install mlocate
L'installation de mlocate modifiera le binaire /usr/bin/locate pour pointer sur mlocate via le mécanisme des alternatives. Après l'installation, vous devriez exécuter /etc/cron.daily/mlocate manuellement pour créer la base de données, sinon mlocate ne fonctionnera pas avant que cron ne l'ait exécuté une première fois (puisque mlocate n'utilise pas le même fichier de base de données que le locate standard). Vous devriez aussi supprimer le paquet locate pour ne pas avoir deux base de données différente mises à jour régulièrement sur votre système.
Fonctionnement
by sylvainsjc