Glob
Glob はシェル形式のファイルパスパターンマッチングであり、* ** ? [] などのワイルドカードでファイル名を照合する。正規表現よりシンプルである。
目的
正規表現の複雑な構文なしに、ファイルシステム向けのシンプルなパターンマッチングを提供する。
メカニズム
* は単一パスセグメント内の任意の文字列(/ を除く)に一致、** は複数ディレクトリ階層を再帰的に一致、? は 1 文字に一致、[] は文字クラスに一致、{} は省略可能なグループに一致する。シェルや minimatch/picomatch などのライブラリによってファイルリストへ展開される。.gitignore、npm、Vite で広く使用される。
ユースケース
- .gitignore と npm の無視ルール
- ビルドツールのファイル包含/除外パターン
- シェルコマンド(ls *.js)
- IDE のファイルフィルタリング
例
- 入力
src/**/*.tsOutputAll .ts files under src (recursive)** recursion
よくあるエラー
- Confusing * with ** (single level vs recursive)
- ** must be enabled via configuration (e.g., in minimatch)