Иллюстрированный самоучитель по RedHatLinux



         

Find, locate, whereis и grep - часть 2


/home/tdanesh/foo

Совет

Обратите внимание: в предыдущем примере задавался поиск во всей системе. Чтобы такая операция была возможна, необходимо войти в систему как корневой пользователь, которому доступны все каталоги. Если этого не сделать, то в ответ на каждую попытку провести поиск в каталоге, к которому нет доступа, будет выводиться сообщение об ошибке "permission denied" (нет доступа).

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

$ find / -name 'fo*' -print

/tmp/foo

/var/lib/texmf/fonts

/usr/bin/font2c

/usr/bin/mh/folders

/usr/bin/mh/folder

/usr/bin/mh/forw

/usr/bin/formail

/usr/bin/fontexport

/usr/bin/fontimport

/usr/bin/fold

и т.д.

Обратите внимание: имя файла указано в одинарных кавычках 'fо*'. Если не сделать этого при использований подстановочного символа "*", то ответом на ввод команды будет сообщение об ошибке.

$ find / -name fo* -print -mount

find: paths must precede expression Usage: find [path...] [expression]

Если результаты выполнения команды find не помещаются на экране, можно присоединить к ней команду more, как в примере с командой ls -1.

$ find / -name 'fo*' -print | more

Locate

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

Например, команда locate xauth породит следующий результат:

$ locate xauth

/home/mj/.xauth

/home/mj/.xauth/refcount

/home/mj/.xauth/refcount/root

/home/mj7 .xauth/refcount/root/testlinux




Содержание  Назад  Вперед