2.8.5.11 Поиск файлов с утилитой Locate
Установка
Основные параметры locate
Обновление базы данных
Основные параметры updatedb
Примеры работы с утилитой
Окружение
- Версия ОС: 7.3
- Конфигурация ОС: Рабочая станция
- Редакция ОС: Стандартная
- Архитектура: x86_64
- Графическое окружение: MATE
- Версия ПО: mlocate-0.26-24
Locate — это утилита для быстрого поиска файлов по имени в предварительно созданной базе данных.
В РЕД ОС утилита locate входит в состав пакета mlocate.
Locate осуществляет поиск файлов не по файловой системе, а по предварительно созданной базе данных. База данных создается утилитой updatedb и требует регулярного обновления.
Основные настройки утилиты locate находятся в конфигурационном файле /etc/updatedb.conf. В нем задаются параметры индексации, такие как игнорируемые файлы, каталоги, файловые системы и расширения.
Базу данных можно использовать собственную или стандартную. Файл стандартной базы данных называется mlocate.db и расположен в каталоге /var/lib/mlocate/.
Установка
Установить утилиту можно либо через графический менеджер пакетов, либо через терминал.
Для установки утилиты через графический менеджер пакетов dnfdragora перейдите в «Главное меню» - «Администрирование» - «Управление программами dnfdragora», выполните поиск необходимого пакета по ключевому слову «mlocate» и отметьте флагом пакет последней версии. После этого нажмите кнопку «Применить» и дождитесь окончания установки.

Для установки утилиты через терминал выполните команду (потребуются права администратора):
sudo dnf install mlocate
Основные параметры locate
К основным параметрам locate относятся:
-A,--all— вывод только файлов, совпадающих со всеми заданными шаблонами;-
-b,--basename— поиск по имени файла; -
-c,--count— вывод количества найденных файлов; -
-d,--database— использование указанной базы данных вместо стандартной; -
-e,--existing— поиск только реально существующих файлов; -
-L,--follow— при проверке существования файла (если указан параметр-e(--existing)) будут отслеживаться конечные символические ссылки. Неработающие символические ссылки из вывода будут исключены. По умолчанию параметр-L(--follow)включен; -
-h,--help— вывод справки; -
-i,--ignore-case— игнорирование регистра символов; -
-p,--ignore-spaces— игнорирование пробелов и пунктуации; -
-t,--transliterate— игнорирование диакритических знаков; -
-l,--limit,-n— ограничение числа выводимых файлов; -
-P,--nofollow— при проверке существования файла (если указан параметр-e(--existing)) конечные символические ссылки не будут отслеживаться. В таком случае неработающие символические ссылки будут отображены в выводе так же, как и другие файлы; -
-0,--null— использование NUL в качестве разделителя строк; -
-S,--statistics— вывод статистики по используемой базе данных; -
-q,--quiet— скрытие ошибок до завершения поиска; -
-r,--regexp— поиск по регулярным выражениям; -
-V,--version— вывод версии locate; -
-w,--wholename— проверка совпадений по полному пути.
Обновление базы данных
Здесь и далее команды будут выполняться с правами обычного (непривилегированного) пользователя, если не указано иное.
База данных требует регулярного обновления для отслеживания новых и удаленных файлов. Автообновление выполняется ежедневно при помощи планировщика Systemd timer.
Для ручного обновления стандартной базы данных выполните команду (потребуются права администратора):
sudo updatedb
Файлы, созданные после обновления базы данных, не будут отображаться в результатах поиска. Для их отслеживания базу данных необходимо обновить.
Основные параметры updatedb
К основным параметрам updatedb относятся:
-f,--add-prunefs– пропуск указанных файловых систем;-
-n,--add-prunenames– пропуск указанных имен; -
-e,--add-prunepaths– пропуск указанных путей; -
-U,--database-root– сканировать только указанную директорию (по умолчанию/); -
-h,--help– вывод справки; -
-o,--output– указание файла базы данных для записи (по умолчанию /var/lib/mlocate/mlocatedb); -
-l,--require-visibility– проверка права доступа пользователя к файлам перед созданием базы данных (по умолчанию используется флагyesили1). При использовании флагаnoили0создается база данных со всеми файлами, не взирая на права доступа пользователя к ним (высокая производительность, но низкая безопасность); -
-v,--verbose– вывод путей к найденным файлам; -
-V,--version– вывод информации о версии.
Примеры работы с утилитой locate
Предварительные условия
Предварительно создан файл test.txt в директории /home/user/Документы пользователя user.
Поиск файлов по имени
Для поиска файла по имени test.txt выполните команду:
locate test.txt /home/user/Документы/test.txt
Фильтрация результатов по базовому имени
Фильтрация результатов по базовому имени осуществляется с помощью параметра -b. В этом случае выводятся только те файлы, чье имя соответствует запросу, игнорируя совпадения в путях к ним.
Для поиска файла по базовому имени (например, Документ) выполните команду:
locate -b Документ /home/user/Документы /usr/share/templates/Документ LibreOffice.desktop /usr/share/templates/.source/Документ LibreOffice.odt
Просмотр статистики базы данных
Для просмотра статистики базы данных, используемой утилитой locate, выполните команду:
locate -S База данных /var/lib/mlocate/mlocate.db: >>19 581 папка >>343 575 файлов >>19 213 518 байт в названии файла база данных заняла >>8 333 681 байт
Поиск файлов по расширению
Для выполнения поиска всех файлов с определенным расширением (например, .exe) выполните следующую команду:
locate "*.exe"
Поиск с использованием NUL
Например, для вывода результатов поиска c использованием NUL в качестве разделителя строк, используйте параметр -0.
Выполните следующую команду:
locate -0 "*.exe" /usr/share/syslinux/syslinux.exe/usr/share/syslinux/syslinux64.exe
Ограничение числа результатов поиска
Для ограничения числа результатов поиска определенным количеством используйте параметр -n.
Например, следующая команда выведет первые 15 файлов с расширением .html:
locate -n 15 "*.html"
Выполнение регистронезависимого поиска
По умолчанию поиск является регистрозависимым. Например, запрос file не найдет файлы с именами File или FILE. Для выполнения регистронезависимого поиска используйте параметр -i:
locate file -i
Отображение количества найденных файлов
Для отображения количества найденных файлов вместо их списка используйте параметр -c:
locate .exe -c 4
Вывод только существующих на данный момент файлов в системе
Для вывода только тех файлов, которые существуют в системе на момент выполнения запроса, используйте параметр -e:
locate .exe -e
Поиск файлов в пользовательской базе данных
По умолчанию утилита locate выполняет поиск файлов в стандартной базе данных mlocate.db.
Для указания пользовательской базы данных используйте параметр -d.
Для создания пользовательской базы данных выполните команду (потребуются права администратора):
sudo updatedb -U /home/user/Документы/ -o /home/user/test.db
где:
-
-U /home/user/Документы– путь к директории, для которой создается база данных; -
-o /home/user/test.db- путь к создаваемому файлу базы данных.
Для поиска файлов с расширением .txt в созданной пользовательской базе данных выполните команду:
locate -d /home/user/test.db ".txt" /home/user/Документы/test.txt
Поиск может выполняться одновременно по нескольким БД. При этом пути к разным файлам БД должны быть отделены друг от друга двоеточием. Например:
locate -d /home/user/test.db:/var/lib/mlocate/mlocate.db "*.txt"
Дата последнего изменения: 20.11.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.