locate - это утилита командной строки для поиска файлов по имени в Linux, подобно команде find. Однако она работает более эффективно по сравнению со своим аналогом.
locate использует одну или несколько баз данных, заполненных программой updatedb, и выводит имена файлов, соответствующие хотя бы одному из шаблонов (заданных пользователем), на стандартный вывод.
Пакет Locate предоставляется пакетами GNU findutils или mlocate. Известно, что эти пакеты предоставляют одинаковую реализацию программы. На большинстве систем CentOS/RHEL пакет findutils поставляется предустановленным, однако, если вы попытаетесь выполнить команду locate, вы можете столкнуться с ошибкой:
1 | -bash: locate: command not found |
Чтобы установить mlocate, используйте менеджер пакетов YUM или APT в соответствии с вашим дистрибутивом Linux.
CentOS/RHEL
1 | yum install mlocate |
Debian/Ubuntu
1 | apt install mlocate |
После установки mlocate необходимо обновить updatedb, который используется командой locate, от имени пользователя root с помощью команды sudo, иначе вы получите ошибку. Место хранения базы данных по умолчанию - /var/lib/mlocate/mlocate.db.
1 | sudo updatedb |
После обновления базы данных попробуйте запустить команду locate, которая на этот раз должна сработать.
Чтобы найти точное совпадение по введенному вами шаблону, используйте опцию -b и опцию \bash, как показано в следующем синтаксисе.
1 | locate -b '\acarsd-info.nse' |
Вы можете использовать переменную окружения LOCATE_PATH для задания пути к дополнительным базам данных, которые считываются после базы данных по умолчанию или любой базы данных, указанной с помощью флага -database в командной строке.