如何搜索以特定字母开头的目录?

如何搜索以特定字母开头的目录?

如何使用 Linux find 命令搜索以特定字母开头的目录。

例如,我想在以字母开头的所有目录中搜索以a开头的文件或目录b

答案1

尝试在查找中进行查找:

查找 . -type d -name "a*" -exec find {} -name "b" \;

从当前目录 ( .) 开始,find 将递归查找以字母 a 开头的所有目录。对于找到的每个目录,它将在其中查找名为 b 的文件。

如果你只希望它查找以A,并且其中没有目录A*文件夹,使用最大深度:

查找 . -type d -name "a*" -exec find {} -maxdepth 1 -name "b" \;

消除错误:

查找 . -type d -name "a*" 2> /dev/null -exec find {} -maxdepth 1 -name "b" \;

答案2

对于可能对此问题感到困惑的人们,我们仅提供一个简单的更新。

除了解决方案约翰·T我还发现您可以使用 prune 开关排除目录(我想我应该早点读一下手册页,呵呵。)

例如,如果我想在所有目录中搜索文件或目录“b”(以“a”开头的目录除外),我可以这样做

find . -path 'a*' -prune -o -name "b" -print

答案3

您还可以使用 find -regex...

find -regex .*/a.*/b

相关内容