在子目录中搜索文件?

在子目录中搜索文件?

我有一个父文件夹和子文件夹的树。子目录具有相似的名称。我想搜索子目录中存储的文件。我怎样才能做到这一点?

例如:

Parent-Directory
  Sub-Directory 1
    input save bad
  Sub-Directory 2
    input save bad
  Sub-Directory 3 
    input save bad

每个子目录包含三个名为(input、save 和 bad)的文件夹。我只想搜索错误子目录中的文件。

答案1

假设您想要在名为 的目录下一级的find每个目录中使用进行递归搜索:badMain Directory

find 'Main Directory'/*/bad ...rest of find options...

我省略了其余的find选项,因为你从来没有说出你想要搜索的内容。

find能够将多个目录作为搜索的起点。在这里,我们给它一个文件名通配模式,该模式将由 shell 扩展到各个目录的路径bad


假设您只想打印这些目录中或之下的所有(常规)文件的路径名:

find 'Main Directory'/*/bad -type f

如果bad目录没有任何需要查看内部的子目录,并且需要处理的文件数量不是几千个,则可以使用

'Main Directory'/*/bad/*

(假设最后一个*与您需要处理的文件的文件名匹配)与您需要使用的任何实用程序。例如,使用ls

ls 'Main Directory'/*/bad/*

答案2

您的问题不清楚,但我假设您想在子目录“BAD”中查找文件,您可以在主目录中运行以下命令:

find . -maxdepth 2 -type d -name "BAD" 

或使用

find . -name "*BAD*" -type f -o -name "*BAD*" -type d

解释

-o 命令或将文件路径后面的参数完全删除,这样 find . -姓名 ”细绳" -type f -o -type d 计算 find 。 (-name "坏的“-类型f)-o(-类型d)。

大多数用户更喜欢如下所示的东西:

find . -name  "*BAD*" -type f -o -name "*BAD*" -type d

计算结果为

find . (-name  "*BAD*" -type f) -o (-name "*BAD*" -type d)

-姓名 ”坏的" 搜索其中任意位置包含字符串 string 的名称

为了简单起见:

find . -maxdepth 2 -o -name "*BAD*"

相关内容