в предыдущем примере задавался поиск
/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
Содержание Назад Вперед