Команда ‘locate’

Команда locate используется для поиска файлов и каталогов в вашей системе. Поиск может осуществляться по имени файла или каталога, содержимому или местоположению.

Установка.

Пакет mlocate, по умолчанию, установлен в большинстве известных дистрибутивов. Узнать это, можно, просто выполнив команду locate. Если вывод будет следующим:

То значит проблем нет, пакет присутствует в вашей системе. Если получаете, что-то вроде этого:

то вам необходимо будет его установить.

Команду locate устанавливается через официальный репозиторий, практически во всех дистрибутивах Linux. Вам просто нужно запустить следующую команду в соответствии с вашими дистрибутивами, чтобы установить пакет mlocate и получить доступ к команде locate.

Установка locate в Ubuntu/Debian

Установка locate в RHEL.

Установка locate в Manjaro/Endeavour/Arch Linux

Базовое использование команды locate

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

Например, мне нужно выполнить поиск файлов, которые содержат в имени или пути к нему, слово history. Для этого можно использовать, следующую команду:

Постраничный вывод с помощью less.

Список искомых файлов может быть длинным. И чтобы его было удобно просматривать, может понадобиться какой-то инструмент для прокрутки вверх и вниз.

Для лучшей читаемости можно передать вывод команды locate в команду less.

Например, можно передать команду, используемую выше в less

Ограничение количества строк в выводе

Можно ограничить количество результатов поиска. Для этого необходимо передать параметр -n и число строк необходимых для вывода.

Например, если мы хотим ограничить количество результатов до 5, мы можем использовать опцию -n с поисковым запросом

Подсчет количества строк результата.

Если вы хотите подсчитать количество строк в выводе, используется параметр -c.

Например, я хочу найти количество файлов содержащих в имени или в пути слово «history»

Игнорировать регистр букв.

Вывод, который вы получаете от команды locate на экране, чувствителен к регистру. Это означает, что при поиске по слову «history» будет найдено только слово «history», и будут игнорироваться такие случаи, как «History» или «HISTORY».

Чтобы игнорировать регистр букв используется параметр -i.

Например, если вы хотите найти все файлы, в имени или пути которых есть «history», вам нужно использовать опцию -i, как показано в следующей команде:

Поиск файла по точному имени.

Приведенная выше команда полезна, если вы не уверены в имени файла и местоположении указанного запроса. Но когда вы абсолютно уверены в имени файла, вы можете задать точное имя или путь к файлу.

Для этого используется параметр -r

Например, я хочу найти файл history.page, тогда запрос будет таким

Показывать только доступные файлы.

Нет, несомненно, скорость отработки команды locate не может не радовать. Но иногда можно обнаружить, что путь к файлу больше не доступен в вашей системе, а команда locate по-прежнему его отображает.

Это происходит потому, что команда updateb обновляет файл базы данных каждые 24 часа с помощью cron. Любые изменения, происходящие после цикла обновления, не будут записываться до следующего цикла или обновления вручную.

Вы можете использовать параметры -e или —existing, чтобы отображать только существующие файлы.

Например, удалю файл «test.pdf» из своего текущего каталога и выполнить команду без параметра -e и с параметром -e, чтобы выяснить разницу.

Использование другой базы данных.

Иногда в вашей системе может быть несколько файлов plocate, и если вы хотите прочитать этот файл mlocate, вам нужно использовать опцию -d и указать путь к базе данных с шаблоном поиска.

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

Обновление базы данных вручную.

Файл базы данных обновляется каждые 24 часа с помощью задания cron, и новые изменения будут отражены в файловой системе через 24 часа.

А если вы внесли какие-либо изменения и хотите обновить базу данных прямо сейчас, вам нужно запустить приведенную ниже команду в своем терминале:

Was this helpful?

0 / 0

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