2016-02-02 5 views
0

Я изучаю утилиту linux find и нахожу, что страница man трудно читать. Я не выполнил проверку команды и посмотрел, что она делает.find ~/Desktop creek.jpg не возвращает такой файл или каталог, когда creek.jpg находится на моем рабочем столе. Зачем?

У меня есть файл creek.jpg на моем рабочем столе.
Когда я типа

find ~/Desktop creek.jpg 

Он появляется, чтобы распечатать все файлы в моем рабочем столе, а затем распечатывает

find: creek.jpg: No such file or directory 

Вот моя умственная картина того, как найти работает. В man-странице говорится, что работа поиска заключается в том, чтобы «ходить по иерархии файлов». Вот мой мысленный образ того, как находят работы. Иерархия файлов (также упоминаемая в man-странице как дерево каталогов.) Похожа на дуб. Каждая вилка в дереве является каталогом. Каждый лист или желудь на дереве - это файл. Найти - гиперактивная белка, которая взбирается вверх и вниз по дереву, касаясь каждого листа, желуди и ветви.

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

По-видимому, я терпеть неудачу в двух частях: как сказать, что нужно искать creek.jpg на моем рабочем столе, и как рассказать об этом, чтобы НЕ рассказывать мне о каждой последней маленькой ветке, и лист ее касается его возбужденных безвольных лап.

Итак:

  1. Когда я печатаю выше команду, почему он говорит мне все, что посещает, и почему он говорит мне, что не нашли creek.jpg?

  2. Как его найти, чтобы найти creek.jpg?

  3. Как мне заставить НЕ указывать мне все остальные файлы, которые он посетил, это «прогулка по иерархии файлов»?

ответ

4

Вы предоставили два пути (~/Desktop и creek.jpg в текущей папке) и не предоставили никаких подходящих критериев. Попробуйте найти ~/Desktop -name creek.jpg

+0

Это сработало! Спасибо за быстрый ответ. Вы знаете, что имя делает на простом английском? Я не могу понять документацию. В документации указано "-name pattern: True, если последний компонент проверяемого пути соответствует шаблону. Специальные символы соответствия шаблону оболочки (' '['',' '] '',' '* '' и' '? '') могут быть использованы как часть шаблона. Эти символы могут быть явно сопоставлены, экранируя их с помощью обратного слэша ('' \ '') « –

+0

Да, это сужает поиск, чтобы возвращать только пути, заканчивающиеся указанной строкой, поэтому вы может использовать его для поиска папок или файлов. –