不用递归

是否有可能以某种方式使用find命令,它不会递归到子目录?例如,

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

而类似find DirsRoot --do-not-recurse -type f的结果只会是File1, File2?

155227 次浏览

我认为你会得到你想要的-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.

你的选择基本上是:

# Do NOT show hidden files (beginning with ".", i.e., .*):
find DirsRoot/* -maxdepth 0 -type f

或者:

#  DO show hidden files:
find DirsRoot/ -maxdepth 1 -type f

我相信你正在寻找-maxdepth 1

如果您正在寻找POSIX兼容的解决方案:

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

maxdepth不是POSIX兼容的选项。

是的,在查找命令中使用maxdepth选项是可能的

find /DirsRoot/* -maxdepth 1 -type f

来自手册

man find

maxdepth水平

在起点以下的大多数目录级别(非负整数)下降。

maxdepth 0

方法只对起点本身应用测试和操作。