Rechercher une page de manuel
locatedb
Langue: fr
Version: 69903 (ubuntu - 01/11/07)
Section: 5 (Format de fichier)
NOM
locatedb - Compression des bases de données de noms de fichiersDESCRIPTION
Cette page de manuel documente le format des bases de noms de fichiers de la version GNU de locate. Les bases de données de noms de fichiers contiennent des listes de fichiers qui étaient dans des arborescences de répertoires particulières lors de la dernière mise à jour des bases de données.Il est possible d'avoir plusieurs bases de données. Les utilisateurs peuvent sélectionner la base de données de recherche en utilisant une variable d'environnement ou une option en ligne de commande ; consultez locate(1). L'administrateur système peut choisir le nom du fichier de la base de données par défaut, la fréquence des mises à jour et les répertoires à référencer. Normalement, les bases de noms de fichiers sont mises à jours en exécutant updatedb périodiquement, typiquement chaque nuit ; consultez updatedb(1).
updatedb exécute un programme appelé frcode pour compresser la liste des noms de fichier en utilisant « front-compression » qui réduit la taille de la base de données d'un facteur 4 à 5. « Front-compression » (aussi connu comme un encodeur incrémental) travaille comme suit.
Les entrées de la base de données sont triées (sans distinction des minuscules et des majuscules pour la convenance des utilisateurs). Puisque la liste est triée, chaque entrée partage probablement un préfixe (début du nom de fichier) avec l'entrée précédente. Chaque entrée de la base de données débute avec un octet de compteur de décalage différentiel, composé du nombre de caractères supplémentaires à ajouter par rapport au préfixe de l'entrée précédente qui n'étaient pas déjà partagés avec le prédécesseur. (Les compteurs peuvent être négatifs.) Vient ensuite le reste du compteur terminé par un reste de caractère ASCII, à savoir la partie du nom qui suit le préfixe partagé.
Si le compteur de décalage différentiel est plus grand que la valeur d'un octet (+/- 127), l'octet prend la valeur 0x80 et le compteur qui suit est un mot de 2 octets avec le poids fort en premier (ordre des octets réseau).
Toute base de données débute avec une entrée factice d'un fichier appelé « LOCATE02 » que locate vérifie pour s'assurer que la base de données de fichiers se trouve dans un format correct ; il ignore cette entrée pendant les recherches.
Les bases de données ne peuvent pas être concaténées ensemble même si la première entrée (factice) est enlevée de toutes les bases de données sauf pour la première. La raison en est que le compteur de décalage différentiel de la première entrée de la seconde et des suivantes bases de données serait erroné.
Un ancien format de base de données est également utilisé par les programmes Unix locate et find et leurs premières versions GNU. updatedb exécute des programmes appelés bigram et code pour créer les bases de données dans l'ancien format. L'ancien format diffère de la description ci-dessus de la façon suivante. Au lieu que chaque entrée commence avec un octet de compteur de décalage différentiel et finisse avec un octet nul, les valeurs d'octets comprises entre 0 et 28 indiquent un compteur de décalage différentiel compris entre -14 et 14. L'octet, indiquant qu'un compteur de décalage différentiel long suit, est 0x1e (30) et non 0x80. Les compteurs longs sont ordonnés selon l'hôte, qui n'est pas forcément l'ordre des octets réseau et selon la taille des mots entier de l'hôte qui est habituellement de 4 octets. Ils représentent un compteur dont leurs valeurs sont soustraites de 14. Les lignes de la base de données ne possède pas d'octet de terminaison ; le début de la ligne suivante est indiqué par le premier octet de valeur <= 30.
En plus, au lieu de débuter avec une entrée factice, l'ancien format des bases de données débute avec une liste de 256 octets contenant les 128 « bigrams » les plus fréquents de la liste de fichiers. Un « bigram » est une paire d'octets contiguë. Les octets dans la base de données qui ont le bit de poids fort à 1 sont indexés (avec le bit de poids fort à 0) dans la table de « bigrams ». Le « bigram » et le codage du compteur de décalage différentiel fait que ces bases de données sont 20 à 25 % plus petites que celles du nouveau format mais elles ne sont pas dans un format 8 bits classique. Tout octet dans un nom de fichier qui est dans l'intervalle utilisé par les codes spéciaux est remplacé dans la base de données par un « ? » qui sans aucune coïncidence est le caractère spécial de l'interpréteur de commande pour la correspondance d'un seul caractère.
EXEMPLE
Entrées de frcode : /usr/src /usr/src/cmd/aardvark.c /usr/src/cmd/armadillo.c /usr/tmp/zoo Longueur du plus long préfixe de l'entrée précédente à partager : 0 /usr/src 8 /cmd/aardvark.c 14 rmadillo.c 5 tmp/zooSortie de frcode avec les caractères nuls restant changés en caractères saut de ligne et les octets de compteurs rendus affichables :
0 LOCATE02 0 /usr/src 8 /cmd/aardvark.c 6 rmadillo.c -9 tmp/zoo (6 = 14 - 8 et -9 = 5 - 14)
VOIR AUSSI
find(1), locate(1), locatedb(5), xargs(1), Finding Files (en ligne avec info ou en version imprimée)BOGUES
La meilleure façon de signaler un bogue est d'utiliser le formulaire à l'adresse http://savannah.gnu.org/bugs/?group=findutils. L'utilité de cette page est que vous serez en mesure de suivre l'évolution de la correction du problème. D'autres commentaires à propos de locate et du paquet findutils peuvent être envoyés à la liste de diffusion bug-findutils. Pour s'abonner à cette liste, envoyez un courriel à bug-findutils-request@gnu.org.
TRADUCTION
Cette page de manuel a été traduite et est maintenue depuis 2006 par Florentin Duneau <fduneau AT gmail DOT com> et les membres de la liste <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.- Je pense que le jour où on mettra les cons sur orbite, t'as pas fini
de tourner.
-+- Michel Audiard -+-
Contenus ©2006-2008 Benjamin Poulain
Design ©2006-2008 Maxime Vantorre