Насколько я знаю, за ними стоит Berkeley DB, которая является базой данных без ключей и значений. Перейдите по ссылке для получения дополнительной информации. Выдержка из Википедии:
Berkeley DB (BDB) - это библиотека программного обеспечения, предназначенная для обеспечения высокопроизводительной встроенной базы данных для данных ключ / значение. Berkeley DB написана на C с привязками API для C ++, C #, Java, Perl, PHP, Python, Ruby, Smalltalk, Tcl и многих других языков программирования. BDB хранит произвольные пары ключ / данные в виде байтовых массивов и поддерживает несколько элементов данных для одного ключа. Berkeley DB не является реляционной базой данных.
Расположение базы данных в RHEL / CentOS /var/lib/mlocate/mlocate.db
(не уверен насчет других дистрибутивов). Команда locate --statistics
даст вам информацию о местоположении и некоторую статистику базы данных (пример):
Database /var/lib/mlocate/mlocate.db:
16,375 directories
242,457 files
11,280,301 bytes in file names
4,526,116 bytes used to store database
Для формата mlocate вот глава man-страницы:
База данных mlocate начинается с заголовка файла: 8 байтов для магического числа ("\ 0mlocate" как литерал C), 4 байта для размера блока конфигурации с прямым порядком байтов, 1 байт для версии формата файла (0), 1 байт для флага «требуется видимость» (0 или 1), заполнение 2 байтами и NUL-завершенный путь к корню базы данных.
За заголовком следует блок конфигурации, который позволяет избежать повторного использования баз данных, если некоторые изменения конфигурации могут повлиять на их содержимое. Размер блока конфигурации в байтах хранится в заголовке файла. Блок конфигурации представляет собой последовательность назначений переменных, упорядоченных по имени переменной. Каждое присвоение переменной состоит из имени переменной, заканчивающейся NUL, и упорядоченного списка значений, заканчивающихся NUL. Список значений заканчивается еще одним символом NUL. Используемый порядок определяется функцией strcmp ().