我有一个父文件夹和子文件夹的树。子目录具有相似的名称。我想搜索子目录中存储的文件。我怎样才能做到这一点?
例如:
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
每个目录中使用进行递归搜索:bad
Main 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*"