You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用globstar后**/*.md匹配根目录文件的原因咨询

解析:启用globstar后**/*.md匹配根目录文件的原因

先明确bash里globstar的核心匹配规则:

  • 开启globstar后,**单独使用时,会匹配所有文件、零个或多个目录/子目录;
  • 当**后紧跟/(即**/)时,仅匹配目录和子目录,不包含文件。

但你执行的**/*.md不能直接套用**/的规则,要拆分这个模式的匹配逻辑:

  1. **会匹配当前目录(零层级的空路径)、所有子目录及更深层级的目录;
  2. 当**匹配空路径时,**/*.md就等价于*.md,对应当前目录下的所有.md文件;
  3. 当**匹配到子目录(比如testfolder/)时,会展开为testfolder/*.md,对应子目录里的文件。

所以最终**/*.md会同时涵盖当前目录和所有子目录下的.md文件,这就是根目录文件被匹配的原因。

而禁用globstar时,**会退化为普通的*匹配规则:仅匹配当前目录下的直接子目录(不会递归,也不匹配当前目录本身),所以**/*.md只会展开为testfolder/*.md,自然只返回子目录里的文件。

再对比你测试的ls **/:**/仅匹配目录,ls命令会列出这些目录下的内容,所以只显示testfolder里的文件,这和文档描述一致。


内容的提问来源于stack exchange,提问作者Atharva Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 03:10:15