Поиск по сайту:

10 полезных практических примеров команды «locate» для новичков в Linux


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

Linux, как и почти любая другая операционная система, использует несколько механизмов для ответа на поисковые запросы пользователей. Две самые популярные утилиты поиска файлов, доступные пользователям, называются find и locate.

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

Утилита locate работает лучше и быстрее, чем ее аналог find, потому что вместо поиска в файловой системе при запуске поиска файла (а что-то find делает) локализация будет просматривать базу данных. Эта база данных содержит фрагменты и части файлов и соответствующие им пути в вашей системе.

Вот десять простых команд поиска, которые помогут вам повысить продуктивность работы на вашем компьютере с Linux.

1. Использование команды «locate»

Запустить командуlocate для поиска файла довольно просто и понятно. Все, что вам нужно сделать, это ввести:


$ locate LAMP-Setup.odt

/home/tecmint/LAMP-Setup.odt
/home/tecmint/TecMint.com/LAMP-Setup.odt

2. Ограничьте поисковые запросы определенным числом

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

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


$ locate "*.html" -n 20

/home/tecmint/.config/google-chrome/Default/Extensions/aapocclcgogkmnckokdopfmhonfmgoek/0.9_0/main.html
/home/tecmint/.config/google-chrome/Default/Extensions/aohghmighlieiainnegkcijnfilokake/0.9_0/main.html
/home/tecmint/.config/google-chrome/Default/Extensions/felcaaldnbdncclmgdcncolpebgiejap/1.1_0/main.html
/home/tecmint/.config/google-chrome/Default/Extensions/kbfnbcaeplbcioakkpcpgfkobkghlhen/14.752.848_0/forge.html
/home/tecmint/.config/google-chrome/Default/Extensions/kbfnbcaeplbcioakkpcpgfkobkghlhen/14.752.848_0/src/popup.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/additional-feature.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/background.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/edit.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/help.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/options.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/popup.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/purchase.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/upload.html
/home/tecmint/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/oauth2/oauth2.html
/home/tecmint/.config/google-chrome/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.2_0/html/craw_window.html
/home/tecmint/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/cast_route_details.html
/home/tecmint/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/feedback.html
/home/tecmint/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/cast_setup/devices.html
/home/tecmint/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/cast_setup/index.html
/home/tecmint/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/cast_setup/offers.html

В результатах будут показаны первые 20 файлов, оканчивающиеся на .html.

3. Отображение количества совпадающих записей

Если вы хотите отобразить количество всех совпадающих записей файла «tecmint», используйте команду locate -c.


$ locate -c [tecmint]*

1550

4. Игнорировать выходные данные поиска с учетом регистра

По умолчанию locate настроен на обработку запросов с учетом регистра, что означает, что TEXT.TXT укажет вам на другой результат, чем text.txt .

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


$ locate -i *text.txt*

/home/tecmint/TEXT.txt
/home/tecmint/text.txt

5. Обновить базу данных mlocate.

Поскольку команда locate использует базу данных mlocate. Для работы командной утилиты указанную базу данных необходимо регулярно обновлять
эффективно.

Чтобы обновить базу данных mlocate, вы используете утилиту updatedb. Следует отметить, что для правильной работы вам потребуются права суперпользователя, если это необходимо выполнять с правами root или sudo.


sudo updatedb

6. Отображать только файлы, имеющиеся в вашей системе

Если у вас есть обновленная база данных mlocate**, команда locate по-прежнему выдает результаты для файлов, физические копии которых удалены из вашей системы.

Чтобы не видеть результаты поиска файлов, отсутствующих на вашем компьютере на момент ввода команды, вам нужно будет использовать команду locate-e. Процесс выполняет поиск в вашей системе, чтобы убедиться в существовании искомого файла, даже если он все еще присутствует в вашем mlocate.db.


$ locate -i -e *text.txt*

/home/tecmint/text.txt

7. Отдельные выходные записи без новой строки

Разделителем по умолчанию команды locate является символ новой строки (\\n). Но если вы предпочитаете использовать другой разделитель, например ASCII NUL, вы можете сделать это с помощью параметра командной строки -0.


$ locate -i -0 *text.txt*

/home/tecmint/TEXT.txt/home/tecmint/text.txt

8. Просмотрите свою базу данных местоположений

Если вы сомневаетесь в текущем статусе вашего mlocate.db, вы можете легко просмотреть статистику базы данныхlocate с помощью команды -S.


$ locate -S

Database /var/lib/mlocate/mlocate.db:
	32,246 directories
	4,18,850 files
	2,92,36,692 bytes in file names
	1,13,64,319 bytes used to store database

9. Подавление сообщений об ошибках в Locate

Постоянные попытки получить доступ к базе данных местоположения иногда приводят к появлению ненужных сообщений об ошибках, в которых говорится, что у вас нет необходимых привилегий для root-доступа к mlocate.db, поскольку вы всего лишь обычный пользователь, а не требуется Суперпользователь.

Чтобы полностью избавиться от этих сообщений, используйте команду -q.


locate "\*.dat" -q*

10. Выберите другое местоположение mlocate.

Если вы вводите запросы, ища результаты, отсутствующие в базе данных mlocate по умолчанию, и хотите получить ответы из другого mlocate.db, расположенного где-то еще в вашей системе, вы можете указать найдите команду в другой базе данных mlocate в другой части вашей системы с помощью команды -d.


locate -d <new db path> <filename>

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