найти без рекурсии - PullRequest
       17

найти без рекурсии

225 голосов
/ 13 октября 2010

Можно ли каким-то образом использовать команду find, чтобы она не возвращалась в подкаталоги?Например,

DirsRoot
  |-->SubDir1
  |    |-OtherFile1
  |-->SubDir2
  |    |-OtherFile2
  |-File1
  |-File2

И результат чего-то вроде find DirsRoot --donotrecuourse -type f будет только File1, File2?

Ответы [ 3 ]

335 голосов
/ 13 октября 2010

Я думаю, вы получите то, что вы хотите с опцией -maxdepth 1, основываясь на вашей текущей структуре команд.Если нет, вы можете попробовать просмотреть справочную страницу для find.

Соответствующая запись (для удобства):

-maxdepth levels
          Descend at most levels (a non-negative integer) levels of direc-
          tories below the command line arguments.   `-maxdepth  0'  means
          only  apply the tests and actions to the command line arguments.

В основном вы можете выбрать:

find DirsRoot/* -maxdepth 0 -type f #This does not show hidden files

Или:

find DirsRoot/ -maxdepth 1 -type f #This does show hidden files
30 голосов
/ 13 октября 2010

Я думаю, что вы ищете -maxdepth 1.

17 голосов
/ 02 октября 2014

Если вы ищете POSIX-совместимое решение:

cd DirsRoot && find . -type f -print -o -name . -o -prune

-maxdepth не является POSIX-совместимым вариантом.

...