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 04/02/2018, 11:53]
86.250.148.235 [Installation]
locate [Le 06/05/2023, 09:59] (Version actuelle)
92.137.30.180 [Installation] plocate
Ligne 10: Ligne 10:
 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 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 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//.+//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//.
  
 La base de données est automatiquement mise à jour quotidiennement grâce au programme //​[[anacron]]//​. La base de données est automatiquement mise à jour quotidiennement grâce au programme //​[[anacron]]//​.
Ligne 20: Ligne 20:
 <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 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>​
  
-La base de données mise à jour quotidiennement à 7h30. Si la machine n'​était pas allumée à ce moment précis, la mise à jour est déclenchée 5 minutes après le prochain démarrage.+La base de données ​est mise à jour quotidiennement à 7 h 30. Si la machine n'​était pas allumée à ce moment précis, la mise à jour est déclenchée 5 minutes après le prochain démarrage.
  
-//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// 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é.+//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 par contre 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).
  
 <​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'​index. Désormais, la mise à jour est automatiquement lancée à la sortie de veille.</​note>​ <​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'​index. Désormais, la mise à jour est automatiquement lancée à la sortie de veille.</​note>​
Ligne 34: Ligne 34:
    sudo apt-get install mlocate    sudo apt-get install mlocate
  
-L'​installation de mlocate ​modifiera ​le binaire ///​usr/​bin/​locate//​ pour pointer sur mlocate. ​Après l'​installation,​ vous devez exécuter /​etc/​cron.daily/​mlocate manuellement pour créer la base de données, faute de quoi //locate// ne fonctionnera pas correctement. Un fichier script //mlocate// est placé dans /​etc/​cron.daily pour être exécuté chaque jour et mettre à jour la-dite base de donnée, qui se trouve à l'​emplacement ///​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.
 ===== 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 76: Ligne 77:
  
  
-Sites relatifs  +Sites relatifs 
-[[http://​packages.ubuntu.com/​fr/​anacron|anacron]]+[[https://​packages.ubuntu.com/​fr/​anacron|anacron]]
  
  
 Auteur : [[utilisateurs/​sylvainsjc]] Auteur : [[utilisateurs/​sylvainsjc]]
  
-Contributeurs : +Contributeurs :
  • locate.1517741632.txt.gz
  • Dernière modification: Le 04/02/2018, 11:53
  • par 86.250.148.235