Man Linux: Main Page and Category List


       mlocate.db - a mlocate database


       A  mlocate  database  starts  with  a  file header: 8 bytes for a magic
       number ("\0mlocate" like a C literal), 4 bytes  for  the  configuration
       block  size  in  big endian, 1 byte for file format version (0), 1 byte
       for the “require visibility” flag (0 or 1), 2 bytes padding, and a NUL-
       terminated path name of the root of the database.

       The  header  is  followed  by a configuration block, included to ensure
       databases are not reused if some  configuration  changes  could  affect
       their contents.  The size of the configuration block in bytes is stored
       in the file header.  The configuration block is a sequence of  variable
       assignments,  ordered  by  variable  name.   Each  variable  assignment
       consists of a NUL-terminated variable name and an ordered list of  NUL-
       terminated  values.   The  value  list  is  terminated  by one more NUL
       character.  The ordering used is defined by the strcmp () function.

       Currently defined variables are:

              A single entry, the  value  of  PRUNE_BIND_MOUNTS;  one  of  the
              strings 0 or 1.

              The value of PRUNEFS, each entry is converted to uppercase.

              The value of PRUNEPATHS.

       The  rest  of  the  file  until  EOF  describes  directories  and their
       contents.  Each directory starts with a header: 8 bytes  for  directory
       time  (seconds) in big endian, 4 bytes for directory time (nanoseconds)
       in big endian (0 if unknown, less than 1,000,000,000), 4 bytes padding,
       and  a  NUL-terminated  path  name  of  the  the  directory.  Directory
       contents, a sequence of file entries sorted by name, follow.

       Directory  time  is  the  maximum  of  st_ctime  and  st_mtime  of  the
       directory.  updatedb(8) uses the original data if the directory time in
       the database and in the file  system  match  exactly.   Directory  time
       equal to 0 always causes rescanning of the directory: this is necessary
       to handle directories which  were  being  updated  while  building  the

       Each file entry starts with a single byte, marking its type:

       0      A  non-directory  file.   Followed by a NUL-terminated file (not
              path) name.

       1      A subdirectory.  Followed by a NUL-terminated  file  (not  path)

       2      Marks the end of the current directory.

       locate(1)  only  reports file entries, directory names are not reported
       because they are reported as an entry in their parent  directory.   The
       only  exception  is the root directory of the database, which is stored
       in the file header.


       Miloslav Trmac <>


       locate(1), updatedb.conf(5), updatedb(8)