此為番外,此篇選入番外的原因是 glob 並不是個工具,但是是個會常被各種工具採用的一種配置方式。
glob 是使用萬用字元來匹配複數檔案的表示法。
glob 以萬用字元來表示檔案群集,被大量的用於各種電腦相關的技術上。
以 Bash 為例,當使用的指令需要指定檔案時,使用者就可以 glob 來表示此指令作用的檔案,例如 ls *.js 會列出當前目錄下所有以 .js 結尾的檔案:
> ls *.js
babel.config.js jest.config.js  vue.config.js
這裡介紹幾個常用的語法:
| 語法 | 作用 | 範例 | 取得的檔案 | 排除的檔案 | 
|---|---|---|---|---|
| * | 於單階層目錄下匹配 0 至多字元 | *.js | search.js | search.md、samples/search.js | 
| ? | 匹配 1 個字元 | samples/?.md | samples/b.md | samples/sample.md | 
| ** | 設定於獨立的階層目錄時,則會匹配 0 至多個目錄層中的檔案 | samples/**/sample.md | samples/sample.md、samples/a/sample.md | samples/a/a.md | 
| {a,b} | 匹配 a或b | *.{js,md} | search.js、search.md | search.json | 
| !(a|b) | 排除匹配 a或b的結果 | samples/!(*.js) | samples/b.md、samples/sample.md | samples/search.js | 
因為 glob 只是個技術名詞,所以各家在實作時,於語法上多少會有些差距,本文以
node-glob的語法來做說明。
ls 、 mv )用來匹配檔案等,因此學習 glob 幾乎就了解大部分電腦技術選取檔案的技術,對於各類工具也可以有更精細的操作。