使用“grep”搜索文件夹名称

使用“grep”搜索文件夹名称

使用 grep 时,您可以搜索特定的正则表达式,但只能在文件内部搜索。有什么方法可以搜索文件夹名称吗?

答案1

我通常使用查找:

$ find . -name 'FolderBasename*' -type d

或者更复杂的查询

$ find . -regex '{FolderRegex}' -type d

正如评论中指出的那样,如果您想要不区分大小写的搜索,请执行 -iname 和 -iregex

答案2

如果你真的指的是 regexp 而不是 shellglob,你可能想要使用

find <path> -regex <regex> -type d

例如。

find Code/ -E -regex '(bin|redblack)_tree\.hs' -type d

该选项-E打开扩展正则表达式,请参阅man find更多信息。

答案3

如果你只关心匹配名称,你可以简单地使用'-姓名' 在查找中。

find <path> -name '<regex>' -type d

答案4

另一个答案无需使用正则表达式(和 Bash4: shopt -s globstar)即可工作:

ls **/dirname/ -d

(基于递归匹配:**/并且仅匹配文件夹/*/

相关内容