Provided by:
manpages-fr-extra_20101103_all 
NOM
locatedb - Bases de donnees incrementales de noms de fichiers
DESCRIPTION
Cette page de manuel documente le format des bases de noms de fichiers
de la version GNU de locate. Les bases de donnees de noms de fichiers
contiennent des listes de fichiers qui etaient dans des arborescences
de repertoires particulieres lors de la derniere mise a jour des bases
de donnees.
Il est possible d'avoir plusieurs bases de donnees. Les utilisateurs
peuvent selectionner la base de donnees de recherche en utilisant une
variable d'environnement ou une option en ligne de commande ; consultez
locate(1). L'administrateur systeme peut choisir le nom du fichier de
la base de donnees par defaut, la frequence des mises a jour et les
repertoires a referencer. Normalement, les bases de noms de fichiers
sont mises a jour en executant updatedb periodiquement, typiquement
chaque nuit ; consultez updatedb(1).
Le format de base de donn'ees du LOCATE02 du GNU.
C'est le format par defaut des bases de donnees generees par updatedb.
updatedb execute un programme appele frcode afin de compresser la liste
des noms de fichier en utilisant <<\ front-compression\ >> qui reduit
la taille de la base de donnees d'un facteur 4 a 5. <<\
Front-compression\ >> (aussi connu sous le nom d'<< encodeur
incremental >>) travaille comme suit.
Les elements de la base de donnees sont tries (sans distinction des
minuscules et des majuscules pour la convenance des utilisateurs).
Puisque la liste est triee, chaque entree partage probablement un
prefixe (debut du nom de fichier) avec l'entree precedente. Chaque
entree de la base de donnees debute avec un octet de compteur de
decalage differentiel, compose du nombre de caracteres supplementaires
a ajouter par rapport au prefixe de l'entree precedente qui n'etaient
pas deja partages avec le predecesseur. (Les compteurs peuvent etre
negatifs). Apres le compteur, on trouve le reste de la chaine ASCII
terminee par un caractere nul, a savoir la partie du nom qui suit le
prefixe partage.
Si le compteur de decalage differentiel est plus grand que la valeur
d'un octet (+/- 127), l'octet prend la valeur 0x80 (en binaire
10000000) et le compteur qui suit est un mot de 2 octets avec le poids
fort en premier (ordre des octets reseau). Ce compteur peut aussi etre
negatif (le signe moins apparaissant dans le premier des deux octets).
Toute base de donnees debute avec une entree factice d'un fichier
appele << LOCATE02 >> que locate verifie pour s'assurer que la base de
donnees de fichiers se trouve dans un format correct ; il ignore cette
entree pendant les recherches.
Les bases de donnees ne peuvent pas etre concatenees ensemble meme si
la premiere entree (factice) est enlevee de toutes les bases de donnees
sauf pour la premiere. Cela est du au compteur de decalage differentiel
de la premiere entree de la seconde base de donnees et des suivantes
qui serait alors errone.
A l'avenir, les donnees contenues dans la base de donnees de locate
pourraient ne plus etre ordonnees d'une quelconque facon. L'obtention
de donnees triees necessitera l'utilisation d'un tube vers sort -f.
format de la base de donn'ees slocate
Le programme slocate utilise un format de donnees proche de celui du
locate du GNU, quoique legerement different. Le premier octet de la
base de donnees indique le niveau de s'ecurit'e. Si ce niveau de securite
est a 0, slocate lira, cherchera, et affichera les noms des fichiers
d'apres les informations contenues dans la base. Toutefois, si le
niveau de securite est a 1, slocate fera disparaitre de sa sortie les
donnees auxquelles l'utilisateur ne peut acceder reellement. Le second
octet de la base de donnees est zero. Ce second octet est suivi par la
premiere valeur contenue dans la base de donnees. Cette premiere entree
n'est precedee par aucun compteur de decalage, ni donnee fantome. En
fait, le compteur de decalage differentiel de la premiere entree vaut
zero.
A partir de la deuxieme donnee (si elle existe), la base de donnees est
interpretee comme le format LOCATE02 du GNU.
Format de l'ancienne base de donn'ees Locate
Un ancien format de base de donnees est egalement utilise par les
programmes Unix locate et find et leurs premieres versions GNU.
updatedb execute des programmes appeles bigram et code pour creer les
bases de donnees dans l'ancien format. L'ancien format differe de la
description ci-dessus de la facon suivante. Au lieu que chaque entree
commence avec un octet de compteur de decalage differentiel et finisse
avec un octet nul, les valeurs d'octets comprises entre 0 et 28
indiquent un compteur de decalage differentiel compris entre -14 et 14.
L'octet, indiquant qu'un compteur de decalage differentiel long suit,
est 0x1e (30) et non 0x80. Les compteurs longs sont ordonnes selon
l'hote, qui n'est pas forcement l'ordre des octets reseau et selon la
taille des mots entier de l'hote qui est habituellement de 4 octets.
Ils representent un compteur dont leurs valeurs sont soustraites de 14.
Les lignes de la base de donnees ne possedent pas d'octet de
terminaison ; le debut de la ligne suivante est indique par le premier
octet de valeur <= 30.
En plus, au lieu de debuter avec une entree factice, l'ancien format
des bases de donnees debute avec une liste de 256 octets contenant les
128 << bigrams >> les plus frequents de la liste de fichiers. Un
<< bigram >> est une paire d'octets contigue. Les octets dans la base
de donnees qui ont le bit de poids fort a 1 sont indexes (avec le bit
de poids fort a 0) dans la table de << bigrams >>. Le << bigram >> et
le codage du compteur de decalage differentiel fait que ces bases de
donnees sont 20 a 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 utilise par les codes speciaux
est remplace dans la base de donnees par un << ? >> qui, ce n'est pas
une coincidence, est le caractere special de l'interpreteur de commande
pour la correspondance d'un seul caractere.
EXEMPLE
Entrees de frcode :
/usr/src
/usr/src/cmd/aardvark.c
/usr/src/cmd/armadillo.c
/usr/tmp/zoo
Longueur du plus long prefixe de l'entree precedente a partager :
0 /usr/src
8 /cmd/aardvark.c
14 rmadillo.c
5 tmp/zoo
Sortie de frcode avec les caracteres nuls restant changes en caracteres
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 imprimee)
BOGUES
La meilleure facon de signaler un bogue est d'utiliser le formulaire a
l'adresse http://savannah.gnu.org/bugs/?group=findutils. L'utilite de
cette page est que vous serez en mesure de suivre l'evolution de la
correction du probleme. D'autres commentaires a propos de locate et du
paquet findutils peuvent etre envoyes a la liste de diffusion
bug-findutils. Pour s'abonner a cette liste, envoyez un courriel a
bug-findutils-request@gnu.org.
TRADUCTION
Cette page de manuel a ete traduite et est maintenue depuis 2006 par
Sylvain Cherrier <sylvain DOT cherrier AT free DOT fr> 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.
LOCATEDB(5)