Утилита locate: как установить и как пользоваться

Утилита locate: как установить и как пользоватьсяКак правило, для поиска файлов в Unix-подобных системах используется утилита find. Но есть и прекрасная альтернатива в виде утилиты locate. О ней и пойдёт речь.

Основное преимущество locate перед find — скорость, с которой утилита locate выводит ответ на запрос. А делает она это практически мгновенно. Что за чудеса? Ответ на этот вопрос будет чуть ниже. А пока о том, как установить утилиту locate в свою систему, если её в ней нет.

В дистрибутивах с apt (Ubuntu, Debian, Linux Mint и т.п.):

sudo apt-get install locate

В дистрибутивах с YUM (Fedora, CentOS, RedHat и т.п.):

sudo yum install mlocate

После этого нужно сделать символическую ссылку на запуск утилиты updatedb, связанной с locate:

sudo ln -s /usr/libexec/locate.updatedb /usr/local/bin/updatedb

Теперь команда updatedb будет запускать одноимённую утилиту. Её предназначение в том, чтобы проиндексировать файловую систему и составить список файлов. Также это можно назвать базой данных, к которой и будет обращаться утилита locate. Вот почему locate выдаёт результаты с такой скоростью — она не ищет, она обращается к заранее созданной базе данных. Но в этом кроется и подвох: если в базе данных нет информации о файле, то locate ничего не выдаст, пусть даже файл будет на компьютере.

Поиск через locate предельно прост:

locate [искомая_последовательность_символов]

Например, мы хотим найти файлы, в названии которых встречается «primer»:

locate *primer*

Утилита locate: как установить и как пользоваться

Если вам нужно знать не местоположение файлов, а их количество, то используйте параметр -c.

locate -c *primer*

Утилита locate: как установить и как пользоваться

По умолчанию locate осуществляет поиск файлов с учётом регистра. Если регистр нужно игнорировать, используйте параметр -i.

locate -i *primer*

На скриншоте ниже мы сперва запустили поиск без параметра -i, утилита locate выдала нам два файла. После этого мы запустили поиск с -i, в результате найден ещё один файл Primer.

Утилита locate: как установить и как пользоваться

Использование символов «звёздочка» (*) при поиске через locate желательно, но чаще всего не обязательно. По умолчанию утилита locate автоматически заменяет переданный текст вида primer на *primer*. Однако и лишним использование символов «звёздочка» не будет, если речь идёт о системе, которую настраивали не Вы.

Следует также уделить немного внимания утилите updatedb, которую мы уже упоминали в этой статье. updatedb индексирует файлы и каталоги, занося их в базу данных, к которой обращается locate. Как правило, файл базы данных это /usr/local/var/locatedb. Провести индексацию можно и вручную командой

sudo updatedb

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

locate -S

Как видите, пользоваться утилитой locate очень просто.

Добавить комментарий

Ваш адрес email не будет опубликован.