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

NOMBRE

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

DESCRIPCIÓN

       Esta  página  de  manual  documenta el formato de las bases de datos de nombres de fichero
       para la versión GNU de locate.  La base de datos de nombres de fichero contiene listas  de
       los  ficheros  que  estaban en los árboles de directorios cuando se actualizaron la última
       vez las bases de datos.

       Puede haber múltiples bases de datos. Los usuarios pueden  seleccionar  en  qué  bases  de
       datos  busca  locate usando una variable de entorno, o una opción de línea 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 periódicamente, típicamente de
       noche; ver updatedb(1L).

       updatedb ejecuta un programa llamado frcode para comprimir la lista de nombres de  fichero
       utilizando compresión de cabeceras, que reduce el tamaño de la base de datos por un factor
       de 4 a 5. La compresión de  cabeceras  (también  conocida  por  codificación  incremental)
       trabaja de la forma que se explica a continuación.

       Las  entradas de la base de datos son una lista ordenada (sin tener en cuenta mayúsculas y
       minúsculas, para conveniencia de los usuarios). Como la lista está 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 número adicional de caracteres
       de prefijo de la entrada precedente a utilizar más allá del número que está utilizando  la
       entrada precedente de su propio predecesor. (El número puede ser negativo). Tras el número
       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 búsqueda.

       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 serían
       incorrectas.

       También 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 descripción 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 tamaño de palabra de entero de host, que normalmente son  4  bytes.  También
       representan una cuenta inferior en 14 a su valor. Las líneas de la base de datos no tienen
       byte de terminación; el comienzo de la siguiente línea está indicado por  su  primer  byte
       con valor <= 30.

       Además,  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 más 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 índices (con el bit alto borrado) a la tabla  de  bigramas.  La
       codificación  de  bigramas  y  cuentas diferenciales de desplazamiento hace estas bases de
       datos 20-25% más pequeñas que el nuevo formato, pero hace que no tengan el bit  8  limpio.
       Cualquier  byte  de  un  nombre  de fichero que esté en los rangos usados para los códigos
       especiales es reemplazado en la base de  datos  por  una  interrogación,  que  no  es  por
       coincidencia el comodín de la shell para sustituír un carácter cualquiera.

EJEMPLO

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

       Longitud del prefijo más 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 línea 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ÉASE TAMBIÉN

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

                                                                                     LOCATEDB(5L)