Provided by: manpages-es-extra_0.8a-17_all bug

NOMBRE

       locatedb - base de datos de cabecera comprimida de nombres de fichero

DESCRIPCI'ON

       Esta  pagina  de  manual  documenta el formato de las bases de datos de
       nombres de fichero para la version GNU de locate.  La base de datos  de
       nombres  de  fichero contiene listas de los ficheros que estaban en los
       arboles de directorios cuando se actualizaron la ultima vez  las  bases
       de datos.

       Puede  haber  multiples bases de datos. Los usuarios pueden seleccionar
       en que bases de datos busca locate usando una variable  de  entorno,  o
       una  opcion  de  linea  de comando; ver locate(1L). El administrador de
       sistema puede elegir el nombre de fichero  de  la  base  de  datos  por
       defecto,  la frecuencia con que se actualizan las bases de datos, y los
       directorios para los que contienen entradas. Normalmente, las bases  de
       datos  de  nombres  de  fichero  se  actualizan al ejecutar el programa
       updatedb periodicamente, tipicamente de noche; ver updatedb(1L).

       updatedb ejecuta un programa llamado frcode para comprimir la lista  de
       nombres  de  fichero  utilizando compresion de cabeceras, que reduce el
       tamano de la base de datos por un factor de 4 a  5.  La  compresion  de
       cabeceras (tambien conocida por codificacion incremental) trabaja de la
       forma que se explica a continuacion.

       Las entradas de la base de datos son una lista ordenada (sin  tener  en
       cuenta  mayusculas  y  minusculas,  para conveniencia de los usuarios).
       Como la lista esta ordenada, es probable que cada entrada  comparta  un
       prejijo  (cadena  de  caracteres inicial) con la entrada anterior. Cada
       entrada de la base de datos comienza  con  un  byte  de  diferencia  de
       desplazamiento  (offset-differential  count  byte),  que  es  el numero
       adicional de caracteres de prefijo de la entrada precedente a  utilizar
       mas  alla  del  numero  que esta utilizando la entrada precedente de su
       propio predecesor. (El numero puede ser negativo). Tras el numero queda
       un  resto  ASCII  terminado en nulo -- la parte del nombre que sigue al
       prefijo compartido.

       Si la cuenta diferencial de desplazamiento es mayor que  el  que  puede
       guardarse  en un byte (+/-127), el byte tiene el valor 0x80 y la cuenta
       sigue en una palabra de 2 bytes, con el byte  alto  primero  (orden  de
       byte de red).

       Cada  base de datos comienza con una entrada falsa a un fichero llamado
       `LOCATE02', que locate comprueba para asegurarse que el fichero de base
       de  datos  tiene  el  formato  correcto;  ignora la entrada al hacer la
       busqueda.

       Las bases de datos no pueden ser concatenadas juntas, aunque la primera
       entrada  (falsa)  se  elimine  de  todas  las bases de datos excepto la
       primera. Esto se debe a que las cuentas  diferenciales  en  la  primera
       entrada de la segunda y siguientes bases de datos serian incorrectas.

       Tambien  hay  un  formato  antiguo  de  base  de  datos,  usado por los
       programas locate y find de Unix y versiones anteriores a  las  de  GNU.
       updatedb  ejecuta  los  programas  llamados bigram y code para producir
       bases de datos en el formato antiguo.  El formato antiguo difiere de la
       descripcion  de  arriba  de  las siguientes maneras. En vez de que cada
       entrada empiece con un byte de cuenta diferencial de  desplazamiento  y
       termine  con  un  nulo,  los valores del byte de 0 a 28 indican cuentas
       diferenciales de desplazamiento de -14 a 14.  El  valor  del  byte  que
       indica  una  cuenta de desplazamiento larga es 0x1e (30), no 0x80.  Las
       cuentas largas se almacenan en el orden de byte  de  host,  que  no  es
       necesariamente  el  orden  de  byte  de red, y con tamano de palabra de
       entero de host, que normalmente son 4 bytes.  Tambien  representan  una
       cuenta  inferior  en  14  a su valor. Las lineas de la base de datos no
       tienen byte de terminacion; el comienzo  de  la  siguiente  linea  esta
       indicado por su primer byte con valor <= 30.

       Ademas, en vez de comenzar con una entrada falsa, el formato antiguo de
       base de datos comienza con una tabla de 256 bytes que contiene los  128
       bigramas  mas  comunes en la lista de ficheros. Un bigrama es un par de
       bytes adyacentes.  Los bytes de la base de datos que tienen el bit alto
       a  1  son  indices (con el bit alto borrado) a la tabla de bigramas. La
       codificacion de bigramas y cuentas diferenciales de desplazamiento hace
       estas  bases  de  datos  20-25% mas pequenas que el nuevo formato, pero
       hace que no tengan el bit 8 limpio. Cualquier  byte  de  un  nombre  de
       fichero  que  este  en los rangos usados para los codigos especiales es
       reemplazado en la base de datos por una interrogacion, que  no  es  por
       coincidencia  el  comodin  de  la  shell  para  sustituir  un  caracter
       cualquiera.

EJEMPLO

       Entrada a frcode:
       /usr/src
       /usr/src/cmd/aardvark.c
       /usr/src/cmd/armadillo.c
       /usr/tmp/zoo

       Longitud del prefijo mas largo a compartir de la entrada precedente:
       0 /usr/src
       8 /cmd/aardvark.c
       14 rmadillo.c
       5 tmp/zoo

       Salida a frcode, con nulos al final cambiados a saltos de linea y bytes
       de cuenta hechos imprimibles:
       0 LOCATE02
       0 /usr/src
       8 /cmd/aardvark.c
       6 rmadillo.c
       -9 tmp/zoo

       (6 = 14 - 8, y -9 = 5 - 14)

V'EASE TAMBI'EN

       find(1L), locate(1L), locatedb(5L), xargs(1L) Finding Files (on-line en
       Info, o impreso)

                                                                  LOCATEDB(5L)