Команда 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 чувствительна к регистру. Если, к примеру, шаблон имеет вид «GrEEn», файлы с именами green и GREEN в процессе поиска будут игнорироваться. Для того, чтобы найти все документы, независимо от наличия строчных и заглавных букв в их названиях, используется опция -i.
Порой в названиях файлов встречаются буквы с диакритическими знаками (умлаутами, акутами, тремами и прочими). Эти документы не будут найдены, если в команде используется шаблон, состоящий из обычных букв. И наоборот, если в шаблоне есть буквы с диакритическими знаками, команда проигнорирует файлы, в названиях которых отсутствуют аналогичные символы. «Стереть» разницу между буквами с диакритическими знаками и без них можно при помощи опции -t.
По умолчанию команда 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. Также в результатах могут появляться уже несуществующие (удалённые) документы. Для того, чтобы актуализировать выдачу, используется опция -e.
Глядя на скриншот, легко сравнить результаты поиска с опцией -е и без неё.
Кроме того, можно обновить базу данных вручную, выполнив в терминале команду:
Выводы
Команда locate linux позволяет быстро и легко найти файлы, затерявшиеся в недрах системы. Если какие-то аспекты её работы остались для вас непонятными, задавайте вопросы в комментариях.
Нет похожих записей
alt=”Creative Commons License” width=”” />
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.