Как вы можете искать только имена файлов по поиску?

Этот вопрос основан на ответе.

я бегаю дома

find -- ./ Desktop                                       

Я понимаю команду как

  1. найти без параметров в текущем каталоге, который является домашним (= /Users/masi/)
  2. найти имя папки Desktop в текущем каталоге

Как вы читаете команду?


person Léo Léopold Hertz 준영    schedule 13.07.2009    source источник
comment
Вы имели в виду ./Desktop, а не ./ Desktop?   -  person Sinan Ünür    schedule 14.07.2009


Ответы (4)


Я думаю, что вы хотите:

find ./ -name Desktop
person Matt Bridges    schedule 13.07.2009

Ответ на ваш вопрос в заголовке

$ find . -type f

Имейте в виду, что

$ find -- ./ Desktop

вернет файлы в Desktop дважды.

person Sinan Ünür    schedule 13.07.2009
comment
Вы, кажется, правы. --- У меня хотя find как find <option> <folder> <filename>. - person Léo Léopold Hertz 준영; 14.07.2009
comment
* Я имею в виду с именем файла имя_папки тоже. - person Léo Léopold Hertz 준영; 14.07.2009

В вашем примере «--» говорит прекратить искать дополнительные параметры. Все остальное после этого является путем, поэтому он находит все, что ему соответствует. И поскольку "./" означает "текущий каталог", он соответствует всему, что находится в текущем каталоге (Desktop приведет к тому, что этот каталог, а также все, что находится внутри него, будет сообщено дважды).

Вы, вероятно, хотите что-то вроде:

find ./Desktop -type f

Который найдет любые файлы внутри каталога ./Desktop, который является файлом (не каталогами, символическими ссылками и т. д...)

Я знаю, что man-страницы иногда могут быть довольно техническими, но "man find" предоставит вам множество других опций, которые могут помочь, а также несколько примеров, которые могут помочь в решении распространенных проблем.

person Adam Batkin    schedule 13.07.2009
comment
Теперь я знаю, в чем заключалось мое замешательство. -type - это не однобуквенный параметр, а многобуквенный параметр, который называется expression в руководстве по поиску OS X. - person Léo Léopold Hertz 준영; 14.07.2009

Ну, вы можете передать несколько каталогов для поиска, чтобы найти:

$ find --help
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
[...]

Обратите внимание на «[path...]», указывающий, что вы можете указать несколько путей.

Таким образом, в вашем примере будут найдены все файлы и каталоги в ./ (текущий каталог) и на рабочем столе.

person sleske    schedule 13.07.2009