2008-08-25 2 views

ответ

4

G'day,

Просто хотел расширить предложение от Джона использовать -prune. Это не самое простое из вариантов поиска, чтобы использовать, например, просто поиск в текущем каталоге команда находки выглядит как:

find . \(-type d ! -name . -prune \) -o \(<the bit you want to look for> \) 

это остановит найти от сползания в подкаталоги внутри этого каталога.

В принципе, он говорит: «Обрезайте все, что есть каталог, имя которого не указано.», То есть текущий каталог. »

Команда find указана слева направо для каждого элемента, найденного в текущем каталоге, поэтому после завершения первого элемента, то есть сегмента обрезки, он будет продолжен с совпадающим элементом во втором -o (OR'd).

HTH.

веселит, Роб

0

Используйте опцию -prune.

3

Возможно, вам будет лучше использовать подстановочные знаки. Например, если вы хотите, чтобы найти все КШ скрипты в текущем каталоге:

$ ls *.ksh 
9

Рассмотрим:

-maxdepth n 
      True if the depth of the current file into the tree is less than 
      or equal to n. 

-mindepth n 
      True if the depth of the current file into the tree is greater 
      than or equal to n. 
+1

Обратите внимание, что -maxdepth и -mindepth не являются переносимыми. GNU find имеет эти параметры и может быть установлен, если необходимо, однако. – 2008-09-08 22:47:09

0

Вы можете даже сделать

echo /specific/dir/*.jpg 

, как это ваша оболочка, которая расширяет подстановочные. Typing

ls *.jpg 

эквивалентно печатая

ls foo.jpg bar.jpg 

дал foo.jpg и bar.jpg все файлы, которые заканчиваются на ".jpg" в текущем каталоге.

Смежные вопросы