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)