Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
locate [Le 10/06/2015, 15:39]
0ol Ajout;exclusion de répertoire de l'indexation + qq reformulations
locate [Le 06/05/2023, 09:59] (Version actuelle)
92.137.30.180 [Installation] plocate
Ligne 8: Ligne 8:
 Dans un terminal, //locate// permet de localiser immédiatement n'​importe quel fichier ou répertoire présent sur votre système (y compris les fichiers cachés). Dans un terminal, //locate// permet de localiser immédiatement n'​importe quel fichier ou répertoire présent sur votre système (y compris les fichiers cachés).
  
-A la différence de la commande //[[http://​doc.ubuntu-fr.org/​tutoriel/​console_commandes_de_base#​find|find]]//,​ //locate// va vous donner le résultat de votre recherche immédiatement. find offre cependant beaucoup plus de possibilités+A la différence de la commande //​[[:​tutoriel/​console_commandes_de_base#​find|find]]//,​ //locate// va vous donner le résultat de votre recherche immédiatement. find offre cependant beaucoup plus de possibilités
  
-//locate// est en fait un fichier lien vers le programme //mlocate//+//locate// est en fait un fichier lien vers le programme //​mlocate// ​devenu **//​plocate//​** sur Ubuntu en 2022.
  
 ===== Principe ===== ===== 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ées qui contient la liste de tous les fichiers et répertoires qui va fournir le résultat de la recherche.+//locate// est rapide parce qu'au lieu de parcourir ​en « //live// » toute l'​arborescence du système (comme le fait //find//), une base de données ​ou //index// est régulièrement mis à jour qui contient la liste de tous les fichiers et répertoires. C'est cet index statique ​qui va être exploré très rapidement et fournir le résultat de la recherche ​lors de l'​utilisation de //locate//.
  
-Cette base de données est mise à jour quotidiennement grâce au programme //​[[anacron]]//​+La base de données est automatiquement ​mise à jour quotidiennement grâce au programme //​[[anacron]]//​.
  
-<note tip>//​[[anacron]]//​ est un programme qui permet l'​exécution de tâches quotidiennes,​ hebdomadaires ou mensuelles sur un système de type Unix. +<note tip>//​[[anacron]]//​ est un programme qui permet l'​exécution de tâches quotidiennes,​ hebdomadaires ou mensuelles sur un système de type Unix.</​note>​
-</​note>​+
  
-Sur un PC allumé 24h/24, la base de données mise à jour quotidiennement à 7h30Sinon si la tâche ​n'a pu être réalisée ​à l'​heure prévuec'est 5 minutes après ​avoir démarré ​le PC que la mise à jour de cette base sera faite (vous voyez votre diode de  disque dur s'​activer pendant l'​indexation)+La base de données ​est mise à jour quotidiennement à 7 h 30Si la machine ​n'était pas allumée ​à ce moment précisla mise à jour est déclenchée ​5 minutes après le prochain démarrage.
  
-//locate// indexe ​tout le système de fichiersun utilisateur ​pourra ​connaître le contenu de dossiers dont il n'a pas les droits. Si cet aspect vous gène, il faudra remplacer mlocate par slocate.+//locate// indexe ​l'​ensemble du système de fichiers ​un utilisateur ​lambda peut utiliser //locate// pour connaître le contenu de dossiers dont il n'a pas les droits. Si cet aspect vous gêne, il faudra remplacer ​//mlocate// (//​plocate//​ depuis 2022) par //slocate//. Ce n'est en général pas un problème sur une machine personnelle dont l'​accès est sécurisé, mais c'est un point à garder en tête pour une utilisation sur serveur ou dans un contexte à accès partagé.
  
-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.+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 par contre ​uniquement disponible dans //mlocate// (//​plocate//​ depuis 2022).
  
-Les adeptes de l'​hibernation ou de la mise en veille ​doivent ​mettre à jour la base de données manuellement pour pouvoir utiliser //​locate// ​car dans ce cas, le PC ne fonctionne ​pas à l'​heure de la mise à jour et ne passe pas par l'étape du redémarrage(Ce n'est plus vrai depuis au moins la 13.10elle se met à jour à la sortie de veille)+<​note>​Avant la version 13.10 d'​Ubuntu,​ les adeptes de l'​hibernation ou de la mise en veille ​devaient potentiellement ​mettre à jour la base de données manuellement pour pouvoir utiliser //locate//dans le cas où leur PC ne fonctionnait ​pas à l'​heure ​exacte prévue ​de la mise à jour de l'indexDésormaisla mise à jour est automatiquement lancée ​à la sortie de veille.</​note>​
  
 ===== Installation ===== ===== Installation =====
  
-Le paquet [[apt>​mlocate]] ​fournissant la commande ''​locate'​' est installé normalement de base sur ubuntu sinon  +La commande //locate// est fournie par le paquet [[apt>​mlocate]], lequel est normalement pré-installé. Si ce n'​est ​pas le cas :
-   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.+   sudo apt-get install ​mlocate
  
-la base de données se trouve ici : ///var/lib/mlocate/mlocate.db// +Un fichier script //mlocate// (//​plocate//​ depuis 2022) est placé dans /​etc/​cron.daily pour être exécuté chaque jour et mettre à jour la base de donnée mlocate (//var/lib/plocate/plocate.db/// depuis 2022). L'​installation de //​mlocate// ​/ //plocate// modifie le binaire ///​usr/​bin/​locate//​ pour pointer sur la version //mlocate// / //​plocate//​. Si //mlocate// / //plocate// n'​était pas pré-installé sur votre système, que vous ayez réalisé une installation manuelle et que vous souhaitiez utiliser //locate// sans attendre, vous devez exécuter ​/​etc/​cron.daily/mlocate (etc/​cron.daily/​plocate depuis 2022) manuellement (une seule fois) dans un terminal ​pour créer la base de données, faute de quoi la commande de recherche //locate// ne fonctionnera pas correctement.
- +
-Un fichier script ​//​mlocate// ​est placé dans /​etc/​cron.daily pour être exécuté chaque jour+
 ===== Fonctionnement ===== ===== Fonctionnement =====
 ==== Utilisation de locate ==== ==== Utilisation de locate ====
  
-Rechercher par exemple le fichier "​.profile"​+Rechercher par exemple le fichier "​.profile" ​:
  
    ​locate .profile    ​locate .profile
  
-Rechercher tous les fichiers mp3 (en majuscules et minuscules) en affichant page par page+Rechercher tous les fichiers mp3 (en majuscules et minuscules) en affichant page par page 
    ​locate -i mp3 | less    ​locate -i mp3 | less
  
-=== Mise à jour manuellement ​de la base de données ====+=== Mise à jour manuelle ​de la base de données ====
  
    sudo updatedb    sudo updatedb
  
 +=== Exclusion de répertoire de l'​indexation ===
  
-=== exclusion de répertoire de l'​indexation === +L'​indexation d'une grande quantité de fichiers est consommatrice de ressources/​temps et nécessite un espace disque important. Il peut donc se révéler intéressant d'​exclure ​certains ​répertoires de l'​indexation.
-L'​indexation d'une grande quantité de fichiers est consommatrice de ressources/​temps et nécessite un espace disque important. +
-Il peut donc se révéler intéressant d'​exclure ​des répertoires de l'​indexation.+
  
-Cela se fait dans le fichier **/​etc/​updatedb.conf** en ajoutant le répertoire en question dans les **PRUNEPATHS**+Cela se fait dans le fichier **/​etc/​updatedb.conf** en ajoutant le répertoire en question dans les **PRUNEPATHS** ​:
  
 <file bash /​etc/​updatedb.conf>​ <file bash /​etc/​updatedb.conf>​
 PRUNEPATHS="/​tmp /var/spool /media /​home/​.ecryptfs /data" PRUNEPATHS="/​tmp /var/spool /media /​home/​.ecryptfs /data"
 </​file>​ </​file>​
-Les fichiers contenus dans les répertoires /tmp /var/spool /media /​home/​.ecryptfs et /data sont donc exclus de l'​indexation.+ 
 +Dans cet exemple, les fichiers contenus dans les répertoires /tmp /var/spool/media/​home/​.ecryptfs et /data sont exclus de l'​indexation.
  
  
Ligne 80: Ligne 77:
  
  
-Sites relatifs  +Sites relatifs 
-[[http://​packages.ubuntu.com/​fr/intrepid/​anacron|anacron]]+[[https://​packages.ubuntu.com/​fr/​anacron|anacron]]
  
  
 Auteur : [[utilisateurs/​sylvainsjc]] Auteur : [[utilisateurs/​sylvainsjc]]
  
-Contributeurs : +Contributeurs :
  • locate.1433943571.txt.gz
  • Dernière modification: Le 10/06/2015, 15:39
  • par 0ol
  • Actuellement bloqué par: 217.113.194.246,10.42.2.254