使用 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
(基于递归匹配:**/
并且仅匹配文件夹/*/
)