Команда locate в Linux

Команда locate Linux используется для поиска файлов, расположенных на машине пользователя или на сервере. Фактически она выполняет ту же работу, что и команда find, однако, ведёт поиск в собственной базе данных. Find же шаг за шагом проходит через всю иерархию директорий.

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

Синтаксис и опции locate

В эмуляторе терминала команда locate записывается в таком формате:

locate опции шаблон_для_поиска

  • -A (–all) — выводит только файлы, соответствующие всем заданным шаблонам.
  • -b (–basename) — выводит файл, если его название соответствует шаблону.
  • -c (–count) — вместо адресов выводит количество найденных файлов.
  • -d (–database) — меняет базу данных для поиска, установленную по умолчанию, на пользовательскую.
  • -e (–existing) — поиск файлов, существующих на момент запуска команды.
  • -L (–follow) — при применении –existing заставляет команду использовать символические ссылки вместо жёстких. Опция –follow включена по умолчанию.
  • -h (–help) — выводит справку.
  • -i (–ignore-case) — делает команду нечувствительной к регистру.
  • -p (–ignore-spaces) — заставляет команду игнорировать пробелы и знаки пунктуации.
  • -t (–transliterate) — игнорирует диакритические знаки.
  • -l, -n (–limit) — ограничивает количество файлов в выводе команды.
  • -P (–nofollow) — заставляет команду использовать жёсткие ссылки вместо символических.
  • -0 (–null) — включает использование NUL в качестве разделителя строк.
  • -S (–statistics) — выводит статистику по каждой базе данных вместо поиска файлов.
  • -q (–quiet) — запрещает команде выводить сообщения об ошибках до завершения поиска.
  • -r (–regexp) — поиск с использованием регулярных выражений.
  • -V (–version) — показывает версию установленной в системе утилиты locate.
  • -w (–wholename) — выводит файл, если в его названии либо адресе есть символы, соответствующие шаблону.

Примеры использования locate

Если нужно найти файлы, соответствующие сразу нескольким шаблонам, используется опция -A. Шаблоны разделяются пробелом:

locate -A zima 64

Опция -w включена по умолчанию, поэтому locate проверяет на соответствие шаблону не только имена файлов, но и названия папок, в которых эти файлы расположены. Например, если Документ1.ods находится по адресу Компьютер/БухалтерияДоки/ВсеДокументы/, он будет выведен командой при использовании шаблонов «Док», «Бух» и «Все». Для того, чтобы в результатах отображались только файлы с именами, в которых присутствует шаблон, применяется опция -b.

Команда locate в Linux

На скриншоте видно, как команда обрабатывает запросы с каждой из упомянутых опций.

Команда locate чувствительна к регистру. Если, к примеру, шаблон имеет вид «GrEEn», файлы с именами green и GREEN в процессе поиска будут игнорироваться. Для того, чтобы найти все документы, независимо от наличия строчных и заглавных букв в их названиях, используется опция -i.

Порой в названиях файлов встречаются буквы с диакритическими знаками (умлаутами, акутами, тремами и прочими). Эти документы не будут найдены, если в команде используется шаблон, состоящий из обычных букв. И наоборот, если в шаблоне есть буквы с диакритическими знаками, команда проигнорирует файлы, в названиях которых отсутствуют аналогичные символы. «Стереть» разницу между буквами с диакритическими знаками и без них можно при помощи опции -t.

Команда locate в Linux

По умолчанию команда locate осуществляет поиск в собственной базе данных mlocate.db, однако, умеет работать и с пользовательскими БД. Для этого предусмотрена следующая опция: database.

locate –database main-user-tor-database1.db bin/raw

Можно одновременно осуществлять поиск в нескольких базах данных, при этом названия файлов этих баз нужно разделять двоеточием:

locate –database main-user-tor-database1.db:main-user-tor-database2.db bin/raw

Результаты будут выведены отдельно для каждой базы данных, в той же очерёдности, с которой базы данных были перечислены в запросе.

Команда locate в Linux

Файлы, добавленные в систему до обновления стандартной базы данных, не обнаруживаются командой locate. Также в результатах могут появляться уже несуществующие (удалённые) документы. Для того, чтобы актуализировать выдачу, используется опция -e.

Глядя на скриншот, легко сравнить результаты поиска с опцией и без неё.

Команда locate в Linux

Кроме того, можно обновить базу данных вручную, выполнив в терминале команду:

Команда locate в Linux

Выводы

Команда locate linux позволяет быстро и легко найти файлы, затерявшиеся в недрах системы. Если какие-то аспекты её работы остались для вас непонятными, задавайте вопросы в комментариях.

Нет похожих записей

alt=”Creative Commons License” width=”” />
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.