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

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

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

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

Ответ 1

Я думаю, вы получите то, что хотите, с опцией -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

Ответ 2

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

Ответ 3

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

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

-maxdepth не совместим с POSIX.