File: locatedb.5

package info (click to toggle)
man-pages-it 0.3.0-1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 2,256 kB
  • ctags: 20
  • sloc: makefile: 150; sed: 1
file content (129 lines) | stat: -rw-r--r-- 5,585 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
.\" Italian manpages for GNU findutils-4.1.
.\" Copyright (C) 1997 Free Software Foundation, Inc.
.\" Giovanni Bortolozzo <borto@dei.unipd.it>, 1997.
.\"
.\" Traduzione di Giovanni Bortolozzo <borto@dei.unipd.it>
.\" Aprile 1997
.\" Correzioni, Ottavio G. Rizzo, ottobre 1998
.\"
.\"" for hilit19
.TH LOCATEDB 5L
.SH NOME
locatedb \- base di dati di nomi di file compressa con front
.SH DESCRIZIONE
Questa pagina di manuale documenta il formato delle basi di dati di
nomi di file per la versione GNU di
.BR locate .
Le basi di dati di nomi di file contengono le liste dei file presenti
in particolari directory l'ultima volta che tali basi di dati sono
state aggiornate.
.P
Ci possono essere diverse basi di dati. Gli utenti possono decidere
su quali basi di dati \fBlocate\fP deve fare la ricerca usando una
variabile d'ambiente o un'opzione in riga di comando; si veda
\fBlocate\fP(1L). L'amministratore di sistema pu scegliere il nome
di file della base di dati di default, la frequenza con la quale sono
aggiornate le basi di dati, e le directory per le quali queste
contengono informazioni. Solitamente, le basi di dati di nomi di file
sono aggiornate lanciando periodicamente il programma \fBupdatedb\fP
(tipicamente di notte); si veda \fBupdatedb\fP(1L).
.P
\fBupdatedb\fP lancia un programma chiamato \fBfrcode\fP per
comprimere, usando la compressione front ("front-compression"), le
liste di nomi di file, riducendo in tal modo la dimensione della base
di dati di 4 o 5 volte.  La compressione front (nota anche come codifica
incrementale - "incremental encoding") funziona come segue.
.P
Le voci della base di dati sono una lista ordinata (considerando, per
convenienza dell'utente, maiuscole e minuscole equivalenti). Poich la
lista  ordinata,  probabile che ogni voce condivida un prefisso
(stringa iniziale) con la voce precedente. Ogni voce della base di
dati inizia con un byte di conteggio dell'offset differenziale
("offset-differential count byte"), che  il numero di caratteri del
prefisso della voce precedente da usare, oltre a quelli che tale
voce usa dei suoi predecessori (il contatore pu essere negativo).
Dopo del contatore c' il rimanente ASCII (terminato con un null) \(em
la parte del nome che segue il prefisso condiviso. 
.P
Se il valore dell'offset differenziale  maggiore di quanto 
immagazzinabile in un byte (+/\-127), tale byte sar posto pari a 0x80
e il contatore seguir in una parola di 2 byte, con il byte pi
significativo per primo (ordinamento dei byte di rete \-"network byte
order").
.P
Ogni base di dati inizia con una voce fittizia per il file chiamato
`LOCATE02', che \fBlocate\fP controlla per assicurarsi che il formato
della base di dati sia corretto; questa voce  ignorata durante la
ricerca. 
.P
Le basi di dati non possono essere concatenate una all'altra, anche se
la prima voce (quella fittizia)  rimossa da tutte tranne che dalla
prima. Questo perch il valore dell'offset differenziale della prima
voce della seconda e delle successive basi di dati sar errato.
.P
Ci vale anche per il vecchio formato delle basi di dati usato dai
programmi Unix 
.B locate
e
.B find
e dalle prime release delle versioni GNU. \fBupdatedb\fP lancia i
programmi chiamati \fBbigram\fP e \fBcode\fP per produrre le basi di
dati nel vecchio formato. Il vecchio formato differisce dalla
descrizione precedente nel seguente modo. Invece di far iniziare ogni
voce con con un byte per il contatore dell'offset differenziale e
farla finire con un null, i valori del byte da 0 a 28 indicano un
valore dell'offset differenziale da -14 a 14. Il valore del byte che
indica che di seguito  presente un contatore dell'offset
differenziale lungo  0x1e (30), non 0x80. I contatori lunghi sono
immagazzinati nell'ordine di byte della macchina ("host byte order"),
che non  necessariamente il network byte order, e nella dimensione
delle parole della macchina, che di solito  di 4 byte. Questi inoltre
rappresentano un numero che  14 in meno del loro valore effettivo. Le
righe della base di dati non hanno nessun byte di terminazione;
l'inizio della riga successiva  indicato dal primo byte che ha valore
minore o uguale a 30.
.P
Inoltre, invece di cominciare con una voce fittizia, il vecchio
formato delle basi di dati inizia con un tabella di 256 byte contenente
i 128 "bigrammmi" pi comuni nella lista dei file. Un bigrammma
("bigram")  una coppia di byte adiacenti. I byte che nella base di
dati hanno il bit pi significativo a 1 sono indicizzati (con il bit
pi significativo posto a 0) nella tabella dei bigrammi. I bigrammi e
la codifica dei contatori dell'offset differenziale rendono queste
basi di dati il 20-25% pi piccole rispetto a quelle nel nuovo
formato, ma fanno s che non siano "8-bit clean". Qualsiasi byte che
in un nome di file  nel range usato per i codici speciali viene
rimpiazzato nella base di dati da un punto di domanda, il quale non a
caso  il metacarattere della shell che corrisponde ad un qualsiasi
carattere singolo. 
.SH ESEMPIO
.nf

Ingresso a \fBfrcode\fP:
/usr/src
/usr/src/cmd/aardvark.c
/usr/src/cmd/armadillo.c
/usr/tmp/zoo

Lunghezza dei prefissi pi lunghi condivisi con le voci 
precedenti:
0 /usr/src
8 /cmd/aardvark.c
14 rmadillo.c
5 tmp/zoo

.fi
Output di \fBfrcode\fP, con i null finali cambiati in newline e i byte
di conteggio resi stampabili:
.nf
0 LOCATE02
0 /usr/src
8 /cmd/aardvark.c
6 rmadillo.c
\-9 tmp/zoo

(6 = 14 \- 8, e \-9 = 5 \- 14)
.fi
.SH "VEDERE ANCHE"
\fBfind\fP(1L), \fBlocate\fP(1L), \fBlocatedb\fP(5L), \fBxargs\fP(1L)
\fBFinding Files\fP (Info in linea, o stampato)