Provided by: manpages-ro_4.26.0-1_all 

NUME
locatedb - bază de date de nume de fișiere comprimată frontal
DESCRIERE
Această pagină de manual documentează formatul bazelor de date cu nume de fișiere pentru versiunea GNU a
locate. Bazele de date cu nume de fișiere conțin liste de fișiere care se aflau în anumiți arbori de
directoare în momentul în care bazele de date au fost actualizate ultima dată.
Pot exista mai multe baze de date. Utilizatorii pot selecta bazele de date în care locate caută folosind
o variabilă de mediu sau o opțiune de linie de comandă; a se vedea locate(1). Administratorul de sistem
poate alege numele de fișier al bazei de date implicite, frecvența cu care sunt actualizate bazele de
date și directoarele pentru care acestea conțin intrări. În mod normal, bazele de date cu nume de fișiere
sunt actualizate prin rularea periodică a programului updatedb, de obicei în fiecare noapte; a se vedea
updatedb(1).
Formatul bazei de date GNU LOCATE02
Acesta este formatul implicit al bazelor de date produse de updatedb. Programul updatedb execută frcode
pentru a comprima lista de nume de fișiere utilizând compresia frontală, ceea ce reduce dimensiunea bazei
de date de un factor de 4 până la 5. Compresia frontală (cunoscută și sub denumirea de codificare
incrementală) funcționează după cum urmează.
Intrările din baza de date sunt o listă ordonată (fără a ține cont de diferențele dintre majuscule și
minuscule, pentru confortul utilizatorilor). Deoarece lista este sortată, este probabil ca fiecare
intrare să aibă un prefix (șir inițial) comun cu intrarea anterioară. Fiecare intrare în baza de date
începe cu un octet de contorizare diferențială cu semn, care reprezintă numărul suplimentar de caractere
ale prefixului intrării precedente care urmează să fie utilizate în plus față de numărul pe care intrarea
precedentă îl utilizează de la predecesorul său (numărătoarea poate fi negativă.) După numărătoare
urmează un rest ASCII cu terminație nulă, partea din nume care urmează prefixului partajat.
În cazul în care numărul diferențial de poziție este mai mare decât poate fi stocat într-un octet cu semn
(±127), octetul are valoarea 0x80 (binar 10000000), iar numărul real urmează într-un cuvânt de 2 octeți,
cu octetul cel mai mare mai întâi (ordinea octeților de rețea). Această numărătoare poate fi, de
asemenea, negativă (bitul de semn fiind în primul dintre cei doi octeți).
Fiecare bază de date începe cu o intrare fictivă pentru un fișier numit „LOCATE02”, pe care locate îl
verifică pentru a se asigura că fișierul bazei de date are formatul corect; în timpul căutării, ignoră
această intrare.
Bazele de date nu pot fi concatenate împreună, chiar dacă prima intrare (fictivă) este eliminată din
toate bazele de date, cu excepția primei. Acest lucru se datorează faptului că numărul diferențial de
poziție din prima intrare a celei de-a doua baze de date și a următoarelor va fi greșit.
În viitor, este posibil ca datele din baza de date „locate” să nu fie sortate într-o anumită ordine.
Pentru a obține rezultate sortate, trimiteți ieșirea din locate prin sort -f.
Formatul bazei de date „slocate”
Programul slocate utilizează un format de bază de date similar, dar nu chiar la fel ca GNU locate. Primul
octet al bazei de date specifică nivelul său de securitate. Dacă nivelul de securitate este 0, slocate
va citi, va potrivi și va imprima numele fișierelor numai pe baza informațiilor din baza de date. Cu
toate acestea, dacă octetul de nivel de securitate este 1, slocate omite intrările de la ieșire dacă
utilizatorul care îl invocă nu are acces la ele. Al doilea octet al bazei de date este zero. Al doilea
octet este urmat de prima intrare din baza de date. Prima intrare din baza de date nu este precedată de
nici un număr diferențial sau de o intrare fictivă. În schimb, se presupune că numărul diferențial pentru
primul element este zero.
Începând cu a doua intrare (dacă există) în baza de date, datele sunt interpretate ca în formatul GNU
LOCATE02.
Formatul vechi al bazei de date „locate”
Acesta este, de asemenea, un format vechi de bază de date, utilizat de programele Unix locate și find și
de versiunile anterioare ale celor GNU. updatedb rulează programe numite bigram și code pentru a produce
baze de date în format vechi. Formatul vechi diferă de descrierea de mai sus în următoarele aspecte. În
loc ca fiecare intrare să înceapă cu un octet de contorizare a diferenței de poziție și să se termine cu
un zero, valorile octeților de la 0 la 28 indică valori de contorizare a diferenței de poziție de la -14
la 14. Valoarea octetului care indică faptul că urmează un număr diferențial de poziție lung este 0x1e
(30), nu 0x80. Numărătorile lungi sunt stocate în ordinea octeților gazdă, care nu este neapărat ordinea
octeților rețelei, și în ordinea mărimii cuvântului întreg gazdă, care este de obicei de 4 octeți.
Acestea reprezintă, de asemenea, un număr cu 14 mai mic decât valoarea lor. Liniile bazei de date nu au
un octet de terminare; începutul liniei următoare este indicat de primul octet al acesteia având valoarea
≤ 30.
În plus, în loc să înceapă cu o intrare fictivă, vechiul format al bazei de date începe cu un tabel de
256 de octeți care conține cele mai frecvente 128 de bigrame din lista de fișiere. O bigramă este o
pereche de octeți adiacenți. Octeții din baza de date care au bitul înalt activat sunt indexuri (cu bitul
înalt șters) în tabelul bigramelor. Codificarea bigramelor și a numărătorii diferențiale de poziție face
ca aceste baze de date să fie cu 2025% mai mici decât noul format, dar nu le face să fie curate pe 8
biți. Orice octet dintr-un nume de fișier care se află în intervalele utilizate pentru codurile speciale
este înlocuit în baza de date cu un semn de întrebare, care, nu întâmplător, este metacaracterul din
shell pentru a se potrivi cu un singur caracter.
EXEMPLU
Intrare în frcode:
/usr/src
/usr/src/cmd/aardvark.c
/usr/src/cmd/armadillo.c
/usr/tmp/zoo
Lungimea celui mai lung prefix al intrării precedente care trebuie partajat:
0 /usr/src
8 /cmd/aardvark.c
14 rmadillo.c
5 tmp/zoo
Ieșire de la frcode, cu nulurile din urmă schimbate în linii noi și cu numărul de octeți care pot fi
imprimați:
0 LOCATE02
0 /usr/src
8 /cmd/aardvark.c
6 rmadillo.c
-9 tmp/zoo
(6 = 14 - 8, și -9 = 5 - 14)
RAPORTAREA ERORILOR
Ajutor în internet pentru GNU findutils: <https://www.gnu.org/software/findutils/#get-help>.
Raportați orice erori de traducere la: <https://translationproject.org/team/ro.html>
Raportați orice altă problemă prin intermediul formularului de la sistemul de urmărire a erorilor al GNU
Savannah:
<https://savannah.gnu.org/bugs/?group=findutils>
Subiectele generale despre pachetul GNU findutils sunt discutate pe lista de discuții bug-findutils:
<https://lists.gnu.org/mailman/listinfo/bug-findutils>
DREPTURI DE AUTOR
Drepturi de autor © 1994-2024 Free Software Foundation, Inc. Licență GPLv3+: GNU GPL versiunea 3 sau o
versiune ulterioară <https://gnu.org/licenses/gpl.html>.
Acesta este software liber: sunteți liber să-l modificați și să-l redistribuiți. Nu există NICIO
GARANȚIE, în limitele prevăzute de lege.
CONSULTAȚI ȘI
find(1), locate(1), xargs(1), locatedb(5)
Documentația completă este disponibilă la <https://www.gnu.org/software/coreutils/tsort>
sau local prin intermediul comenzii: info locatedb
TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu
<remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o
versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO
RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
ro@lists.sourceforge.net.
LOCATEDB(5)