Команда locate используется для поиска файлов и каталогов в вашей системе. Поиск может осуществляться по имени файла или каталога, содержимому или местоположению.
- Установка.
- Базовое использование команды locate
- Постраничный вывод с помощью less.
- Ограничение количества строк в выводе
- Подсчет количества строк результата.
- Игнорировать регистр букв.
- Поиск файла по точному имени.
- Показывать только доступные файлы.
- Использование другой базы данных.
- Обновление базы данных вручную.
Установка.
Пакет mlocate, по умолчанию, установлен в большинстве известных дистрибутивов. Узнать это, можно, просто выполнив команду locate. Если вывод будет следующим:
locate: no pattern to search for specified
То значит проблем нет, пакет присутствует в вашей системе. Если получаете, что-то вроде этого:
bash: locate: command not found
то вам необходимо будет его установить.
Команду locate устанавливается через официальный репозиторий, практически во всех дистрибутивах Linux. Вам просто нужно запустить следующую команду в соответствии с вашими дистрибутивами, чтобы установить пакет mlocate и получить доступ к команде locate.
Установка locate в Ubuntu/Debian
sudo apt update
sudo apt install mlocate
Установка locate в RHEL.
sudo dnf update
sudo dnf install mlocate
Установка locate в Manjaro/Endeavour/Arch Linux
sudo pacman -S mlocate
Базовое использование команды locate
Использование locate интуитивно понятно. Просто нужно вызвать эту команду и передать ей имя файла в качестве аргумента, чтобы найти файл в дисковом хранилище.
locate [поисковой_запрос]
Например, мне нужно выполнить поиск файлов, которые содержат в имени или пути к нему, слово history. Для этого можно использовать, следующую команду:
locate history
Постраничный вывод с помощью less.
Список искомых файлов может быть длинным. И чтобы его было удобно просматривать, может понадобиться какой-то инструмент для прокрутки вверх и вниз.
Для лучшей читаемости можно передать вывод команды locate в команду less.
locate [поисковой_запрос] | less
Например, можно передать команду, используемую выше в less
locate history | less
Ограничение количества строк в выводе
Можно ограничить количество результатов поиска. Для этого необходимо передать параметр -n и число строк необходимых для вывода.
locate [поисковой_запрос] -n [количество_строк]
Например, если мы хотим ограничить количество результатов до 5, мы можем использовать опцию -n с поисковым запросом
locate history -n 5
Подсчет количества строк результата.
Если вы хотите подсчитать количество строк в выводе, используется параметр -c.
locate -c [поисковой_запрос]
Например, я хочу найти количество файлов содержащих в имени или в пути слово «history»
locate -c history
Игнорировать регистр букв.
Вывод, который вы получаете от команды locate на экране, чувствителен к регистру. Это означает, что при поиске по слову «history» будет найдено только слово «history», и будут игнорироваться такие случаи, как «History» или «HISTORY».
Чтобы игнорировать регистр букв используется параметр -i.
locate -i [поисковой_запрос]
Например, если вы хотите найти все файлы, в имени или пути которых есть «history», вам нужно использовать опцию -i, как показано в следующей команде:
locate -i history
Поиск файла по точному имени.
Приведенная выше команда полезна, если вы не уверены в имени файла и местоположении указанного запроса. Но когда вы абсолютно уверены в имени файла, вы можете задать точное имя или путь к файлу.
Для этого используется параметр -r
locate -r [Поисковой_запрос]
Например, я хочу найти файл history.page, тогда запрос будет таким
locate -r history.page
Показывать только доступные файлы.
Нет, несомненно, скорость отработки команды locate не может не радовать. Но иногда можно обнаружить, что путь к файлу больше не доступен в вашей системе, а команда locate по-прежнему его отображает.
Это происходит потому, что команда updateb обновляет файл базы данных каждые 24 часа с помощью cron. Любые изменения, происходящие после цикла обновления, не будут записываться до следующего цикла или обновления вручную.
Вы можете использовать параметры -e или —existing, чтобы отображать только существующие файлы.
locate -e [Поисковой_запрос]
Например, удалю файл «test.pdf» из своего текущего каталога и выполнить команду без параметра -e и с параметром -e, чтобы выяснить разницу.
Использование другой базы данных.
Иногда в вашей системе может быть несколько файлов plocate, и если вы хотите прочитать этот файл mlocate, вам нужно использовать опцию -d и указать путь к базе данных с шаблоном поиска.
Например, если у вас есть две доступные базы данных plocate, вы можете использовать следующую команду для поиска файла в той базе, которая не назначена по умолчанию:
locate [Новая БД] [Поисковой_запрос]
Обновление базы данных вручную.
Файл базы данных обновляется каждые 24 часа с помощью задания cron, и новые изменения будут отражены в файловой системе через 24 часа.
А если вы внесли какие-либо изменения и хотите обновить базу данных прямо сейчас, вам нужно запустить приведенную ниже команду в своем терминале:
sudo updatedb
Was this helpful?
0 / 0