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

编写Bash Glob模式:包含所有.hs文件但排除.stack-work目录文件

Bash Glob模式:包含所有.hs文件但排除.stack-work目录下的文件

问题原因

你使用的!(.stack-work/*.hs)无效,是因为该模式仅匹配不与.stack-work/*.hs完全匹配的单个路径,既不会递归遍历子目录,也无法覆盖其他目录下的.hs文件。

解决步骤

  • 先开启Bash的两个必要扩展选项(默认可能未启用):
    shopt -s extglob globstar
    
    • extglob:支持!()这类排除型扩展通配符
    • globstar:让**可以递归匹配所有层级的子目录
  • 使用以下任一Glob模式即可选中A.hs、B.hs和D.hs,同时排除C.hs:
    **/*.hs !(.stack-work/**/*.hs)
    
    或更直观的拆分写法:
    *.hs !(.stack-work)/**/*.hs
    

模式说明

  • **/*.hs:递归匹配所有目录下的.hs文件(包含当前目录的D.hs)
  • !(.stack-work/**/*.hs):排除.stack-work目录下所有递归层级的.hs文件(即排除C.hs)
  • 拆分写法中:
    • *.hs:匹配当前目录下的D.hs
    • !(.stack-work)/**/*.hs:匹配除.stack-work外其他目录下的所有.hs文件(即A.hs和B.hs)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 09:47:23