Jump to content

# locate (Русский)

From ArchWiki

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

Ссылки по теме

- find
- Основные утилиты
- List of applications/Utilities#File searching

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

Со временем появлялись и сменяли друг друга разные реализации: slocate (secure locate), которая показывала только доступные пользователю файлы, mlocate (merging locate) которая объединяет базы данных при обновлении, что улучшает производительность, поскольку она может пропускать ранее просмотренные файлы, и ныне актуальная реализация plocate (posting locate), основанная на инвертированном индексе и создающая гораздо более быстрый (и меньший по размеру) индекс.

## Установка

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

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

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

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

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

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

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

- How locate works and rewrite it in one minute

Category:

- Search (Русский)

Hidden category:

- Pages with dead links

locate (Русский)
Add topic