如何通过命令行按部分名称搜索文件夹?含jdk文件夹搜索咨询
命令行搜索包含指定名称的文件夹方法
没问题,我来帮你搞定这个文件夹搜索的需求!不管你用的是Windows还是Linux/macOS,都有精准的命令可以实现只搜文件夹、按部分名称匹配的效果,下面分系统给你详细说:
Windows 平台
命令提示符(CMD)
你之前用的dir /s *foo*会同时搜文件和文件夹,只要加一个参数就能只限定文件夹:
dir /s /ad *jdk*
/s:递归搜索当前目录及所有子目录/ad:仅显示目录(文件夹),排除普通文件*jdk*:通配符匹配,任何名称中包含jdk的文件夹都会被列出
PowerShell(更灵活)
如果你用PowerShell,功能会更强大,推荐这两个命令:
- 基础过滤版:
Get-ChildItem -Recurse -Directory -Filter "*jdk*"
- 自定义匹配版(适合更复杂的规则,比如区分大小写):
Get-ChildItem -Recurse | Where-Object { $_.PSIsContainer -and $_.Name -like "*jdk*" }
-Recurse:递归搜索子目录-Directory:只筛选文件夹-like "*jdk*":模糊匹配名称包含jdk的项,换成-clike可以区分大小写
Linux/macOS 平台
用find命令是最直接可靠的方式,这是终端里搜索文件/文件夹的标配工具:
# 搜索当前目录及子目录中名称含jdk的文件夹 find . -type d -name "*jdk*" # 如果需要忽略大小写匹配(比如JDK、Jdk都能搜到) find . -type d -iname "*jdk*" # 指定搜索根目录的话,把.换成目标路径,比如: find /home/user -type d -name "*jdk*"
-type d:只匹配目录(文件夹)-name "*jdk*":匹配名称包含jdk的目录-iname:忽略大小写的匹配规则
总结
你之前的困惑是因为默认命令会同时搜索文件和文件夹,只要加上限定目录类型的参数(比如CMD的/ad、PowerShell的-Directory、Linux的-type d),就能精准只搜文件夹,再配合通配符*就能实现按部分名称搜索的需求。
内容的提问来源于stack exchange,提问作者nimrod
相关产品推荐
相关产品推荐

