2024-08-18 10:00:01

不用递归

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

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

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


当前回答

我相信你正在寻找-maxdepth 1。

其他回答

是的,在find命令中使用-maxdepth选项是可能的

find /DirsRoot/* -maxdepth 1 -type f

来自手册

人找到

maxdepth水平 在起点以下的大多数目录级别(非负整数)下降。 maxdepth 0 方法只对起点本身应用测试和操作。

我认为,基于当前的命令结构,使用-maxdepth 1选项将得到您想要的结果。如果没有,您可以尝试查看查找的手册页。

相关条目(为方便起见):

-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

Or:

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

我相信你正在寻找-maxdepth 1。

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

cd DirsRoot &&查找。-type f -print -o -name。- o修剪

-maxdepth不是POSIX兼容选项。