Команда locate
— это утилита командной строки Linux, которая находит файлы и каталоги в системе по их именам. Этот инструмент особенно пригодится пользователям, которые хранят на накопителе огромное количество файлов. В такой ситуации необходимо простое и одновременно эффективное средство поиска файлов. Этим условиям в полной мере соответствует команда locate
, поскольку она вместо поиска файла по всей файловой системе просматривает базу данных mlocate, которая содержит биты и части файлов, а также — соответствующие им пути в системе.
В этой статье мы покажем несколько примеров использования команды locate
вместе с различными полезными опциями.
Содержание:
- Синтаксис команды locate
- Примеры использования команды locate
- Найдите файл по названию
- Ограничьте количество результатов поиска
- Узнайте количество найденных записей
- Как игнорировать регистр при поиске
- Обновите базы данных locate
- Найдите только существующие записи
- Уберите символ-разделитель
- Осуществляйте поиск с помощью регулярных выражения
- Используйте свою базу данных
- Выводы
Синтаксис команды locate
У данной утилиты несложный синтаксис, достаточно ввести команду locate
и в качестве аргумента — текст шаблона, по которому Вы хотите найти файл. В работе с утилитой будут полезны следующие опции:
-c
— выводит количество совпадений с указанным шаблоном;-i
— позволяет игнорировать регистр при поиске;-e
— выводит только те названия, которые существуют на данный момент;-r
— позволяет указывать регулярные выражения вместо шаблонов;-h
— выводит справочную информацию об утилите.
Если же Вам нужно использовать какую-либо опцию — просто добавьте ее между командой и искомым шаблоном. Чтобы увидеть подробное описание синтаксиса и опций утилиты — введите в командную строку команду locate
с параметром --help
:
Найдите файл по названию
Итак, рассмотрим самый простой способ поиска файлов с использованием этой утилиты. Допустим, Вам нужно найти файл 123.txt
. Чтобы это сделать — введите команду locate
с названием файла в качестве аргумента:
Ограничьте количество результатов поиска
Когда Вам нужно найти файл по его расширению, зачастую в результате Вы получаете длинный список из всех найденных файлов данного типа. Вы можете ограничиться определенным числом файлов, чтобы избежать избыточности результатов поиска. Чтобы это сделать — используйте опцию -n
. Предположим, что Вам нужно получить только 20 результатов из поиска файлов с расширением .txt
:
Узнайте количество найденных записей
Данная команда позволяет установить не только расположение файлов по определенному шаблону, но и узнать количество найденных соответствий в базе данных. В этом Вам поможет опция -c
. Например, попробуем узнать количество файлов, в названии которых есть шаблон user
:
Читайте также: Курс LFCS — часть 3: архивирование, поиск и настройка атрибутов файлов
Как игнорировать регистр при поиске
Изначально команда учитывает регистр при поиске файлов. То есть, считает одни и те же слова, написанные с использованием строчных и заглавных символов в любых комбинациях — разными. Чтобы отменить эту настройку и заставить locate
считать совпадающими результаты как в верхнем, так и в нижнем регистре — используйте параметр -i
:
Как Вы могли заметить, в результатах поиска присутствуют не только точные совпадения (text.txt
), но и комбинации строчных и заглавных букв — Text.txt
, TEXt.txt
и так далее.
Обновите базы данных locate
Как мы говорили ранее, команда locate
использует для поиска базу данных mlocate. Стоит отметить, что данная база данных периодически обновляется сама. Однако, для эффективной работы утилиты рекомендуется вручную обновлять mlocate перед началом поиска. Чтобы это сделать, следует использовать команду updatedb
с привилегиями суперпользователя:
Найдите только существующие записи
Обычно база данных mlocate обновляется автоматически. Однако, в промежутках времени между ее обновлениями Вы можете удалить некоторые файлы. И во время поиска они все еще будут найдены утилитой. Чтобы этого избежать — используется опция -e
:
Уберите символ-разделитель
Изначально каждая новая запись в результатах поиска выводиться с новой строки. То есть, утилита использует разделитель \n
. Если Вам нужно, чтобы результаты выводились друг за другом подряд — просто уберите этот символ с помощью опции -0
:
Осуществляйте поиск с помощью регулярных выражения
Команда locate
может выполнять поиск не только по точному шаблону. Вместо этого пользователь может использовать регулярные выражения, составленные с использованием метасимволов подстановки. Для этого достаточно добавить к команде параметр --regex
. С его помощью Вы можете находить записи с разным разрешением файлов и названием. Допустим, что Вам нужно найти файлы .txt
и .html
. В таком случае следует ввести в командную строку следующую команду:
Читайте также: Поиск больших файлов и папок на диске в Linux
Используйте свою базу данных
Возможно, у Вас существует своя база данных, в которую записывается расположение различных файлов. Вы можете использовать ее для работы с командой locate
. Стоит отметить, что список названий файлов в базе данных должен быть разделен двоеточием. Для такого поиска Вы должны указать путь к своей базе данных после параметра -d
и добавить искомый шаблон:
Выводы
Мы разобрали, для чего и как можно использовать команду locate
в Linux. С помощью данной утилиты Вы сможете искать нужные файлы по заданному шаблону, в том числе — по регулярному выражению, а также — обновлять базу данных, чтобы поиск выдавал актуальные результаты. Все это непременно пригодиться Вам при работе с Linux и поможет укрепить знания в сфере системного администрирования.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.