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

如何启用**(globstar)通配符?globstar的名称与激活方法

嘿,刚好我之前也碰到过这个问题!你说的这个能遍历所有子目录的**通配符,它的正式名称是globstar,是bash shell的扩展功能,专门用来解决跨层级子目录的匹配需求~

核心区别回顾

先再明确下它和普通*的差异:

  • 单星号*:仅匹配当前目录下的所有文件/文件夹,不会深入子目录
  • 双星号**(globstar):会递归匹配所有层级的子目录及其包含的文件/文件夹
激活方法

globstar默认是关闭的,所以需要手动开启,分两种场景:

临时激活(仅当前shell会话有效)

直接在终端里执行这条命令:

shopt -s globstar

执行完就能立刻用了,比如试试ls **/*.txt,就能列出当前目录及所有子目录里的TXT文件。如果要临时关闭这个功能,执行:

shopt -u globstar

永久激活(所有新shell会话都生效)

把开启命令加到bash的配置文件里,步骤如下:

  1. 打开你的bash配置文件(Linux系统一般用~/.bashrc,macOS如果使用bash的话可能是~/.bash_profile):
    nano ~/.bashrc
    
  2. 在文件末尾添加一行:
    shopt -s globstar
    
  3. 保存并退出nano编辑器(按Ctrl+O,回车确认保存,再按Ctrl+X退出)
  4. 让配置立刻生效:
    source ~/.bashrc
    
注意事项
  • 这个功能要求bash版本在4.0及以上,可以用bash --version查看你的当前bash版本,如果版本过低需要先升级bash。
  • 其他shell(比如zsh)默认就支持**的递归匹配,但bash必须手动开启globstar扩展才能生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:45:30