Команда «найти» в терминале. Почему это так быстро?

Поиск ключевого слова в терминале Linux с помощью команды locate дает ответ в течение короткого времени. Какой алгоритм поиска используется?

7
задан 8 January 2014 в 02:28

2 ответа

Система создает базу данных всех файлов на компьютере. Таким образом, при поиске через locate команда на самом деле не проверяет всю файловую систему, а только базу данных, она выполняет алгоритм двоичного поиска, который очень похож на поиск слова в словаре. Вот почему это так быстро (и удобно).

Такая база данных регулярно обновляется; вы, возможно, видели, как это иногда работает при установке нового пакета: updating mlocate.... Вы можете найти больше информации о том, как это работает, выполнив в терминале:

man locate

man updatedb
0
ответ дан 8 January 2014 в 02:28

Он использует базу данных. База данных, в которой выполняется поиск по умолчанию, расположена по адресу:

/var/lib/mlocate/mlocate.db

Недостатком локализации является то, что она НЕ работает в реальном времени.

Со страницы руководства:

ОПИСАНИЕ locate читает одну или несколько баз данных, подготовленных updatedb (8), и записывает имена файлов, соответствующие по крайней мере одному из PATTERN, в стандартный вывод, по одному на строку.

0
ответ дан 8 January 2014 в 02:28

Другие вопросы по тегам:

Похожие вопросы: