4.10. Поиск файлов и каталогов

Бывает, что вы знаете, что файл или каталог существует, но не знаете, как его найти. Существует несколько команд, которые помогут вам в этом: find, locate и which.

4.10.1. Команда find

Команда find имеет следующий формат:

find путь образец_для_поиска

Если вы не укажете путь, find начнет поиск заданного образца с текущего каталога и продолжит его по всем имеющимся в нем подкаталогам.

Команда find имеет множество опций, ознакомиться с которыми можно, прочитав man-страницу (введите в командной строке man find). Чаще всего используется опция -name, которая задает поиск всех файлов и каталогов, содержащих в названии определенное сочетание букв.

find . -name tes

Эта команда задает поиск в текущем каталоге всех файлов, содержащих в названии «tes».

4.10.2. Команда locate

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

locate dog

Команда locate использует базу данных для определения местонахождения файлов или каталогов, содержащих в названии слово dog. Результаты поиска могут включать файл с названием dog, файл с названием bulldog.txt, каталог с названием /dogs/ и так далее. Чтобы узнать больше о команде locate, обратитесь к ее man-странице (введите в командной строке man locate).

При условии, что база данных обновлена, команда locate осуществляет поиск очень быстро. Обновление базы данных команды locate происходит каждую ночь при помощи службы cron. cron — это небольшая программа, которая запускается в фоновом режиме и выполняет различные задачи (такие как обновление базы данных команды locate) через определенные промежутки времени.

[Tip]Подсказка

cron работает как daemon и запускает задания через указанные промежутки времени. Для доступа к руководству cron наберите в командной строке man cron.

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

Чтобы обновить базу данных вручную, войдите в систему как root (набрав в командной строке su - и введя пароль root'а) и наберите в командной строке updatedb.

Через несколько минут база данных slocate, используемая командой locate, обновится.

Закончив работу, для выполнения которой необходимо быть root'ом, наберите в командной строке exit — вы вернетесь в вашу сессию.

[Note]Замечание

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

Для получения более подробной информации обратитесь к руководству anacron (набрав в командной строке man anacron) и к Red Hat Enterprise Linux System Administration Guide.

4.10.3. Команда which

Команда which имеет следующий формат:

which команда

which показывает положение бинарных, или исполняемых файлов. Вывод команды which может быть полезен при создании кнопки запуска приложения. Эта процедура описана в Разд. 2.2.1, Добавление кнопки запуска приложения.

Команда

which gedit

покажет /usr/bin/gedit.

4.10.4. Команда whereis

Команда whereis имеет следующий формат:

whereis команда

Команда

whereis find

покажет положение бинарного файла, исходников и man-страницы команды find:

find: /usr/bin/find /usr/share/man/man1p/find.1p.gz /usr/share/man/man1/find.1.gz

4.10.5. Команда whatis

Команда whatis имеет следующий формат:

whatis команда

Эта команда показывает информацию о команде из ее man-страницы.

Команда

whatis lp

покажет

lp          (4) - line printer devices
lp(lp-cups) (1) - print files
[Note]Замечание

Если необходимо навести справки о назначении какой-либо команды, использование whatis до обращения к man-странице может сэкономить время.