locate (Русский)

From ArchWiki

Состояние перевода: На этой странице представлен перевод статьи locate. Дата последней синхронизации: 21 июля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

locate — это распространённый инструмент Unix для быстрого поиска файлов по имени. Он работает быстрее чем find благодаря поиску в предварительно созданном файле базы данных, а не непосредственно в файловой системе. Недостатком этого подхода является то, что изменения в файловой системе, сделанные с момента создания файла базы данных, locate не увидит. Влияние этой проблемы можно уменьшить путём обновления базы данных по расписанию.

mlocate (Merging Locate) — более безопасная версия locate, которая показывает только файлы, доступные пользователю.

plocate (Posting Locate) — реализация locate, основанная на инвертированном индексе, использующая базу данных mlocate и создающая из неё гораздо более быстрый (и меньший по размеру) индекс.

Установка

Установите пакет mlocate или plocate.

Хотя GNU findutils также имеет свою реализацию locate, пакет findutils в Arch её не содержит.

Использование

Перед использованием locate(1) нужно создать базу данных. Это делается с помощью команды updatedb(8), которая (как следует из названия) обновляет базу данных.

Пакет mlocate предоставляет юнит updatedb.timer, а plocateplocate-updatedb.timer. Они запускают обновление базы данных каждый день. mlocate включает свой таймер при установке. Запустите его вручную, если вы хотите использовать его до перезагрузки. Вы также можете вручную выполнить команду updatedb от имени root в любое время.

Для экономии времени updatedb может быть настроен (и по умолчанию настроен) на игнорирование определённых файловых систем и путей в файле /etc/updatedb.conf. Семантика этого файла описана в updatedb.conf(5). Стоит отметить, что среди путей, игнорируемых в настройках по умолчанию (PRUNEPATHS), есть /media и /mnt, поэтому locate может не обнаружить файлы на внешних устройствах.

Смотрите также