TL;DR
ワイルドカード文字を使って、ファイル名やディレクトリ名を指定するパターン。
仕組み
glob(7) によると、glob はワイルドカードを含むパターンを、それに一致するパス名の一覧に展開する。かつて UNIX V6 に /etc/glob というプログラムがあり、すぐにシェルの組み込み機能になった。今はユーザのプログラムからも、ライブラリ関数の glob(3) で同じことができる。
ワイルドカードは 3 種類ある。? は任意の 1 文字、* は空文字列を含む任意の文字列、[...] は括弧の中のどれか 1 文字に一致する。括弧の中では - で範囲を書け、[A-Fa-f0-9] は 16 進数の 1 桁に一致する。[!...] と書くと、括弧の中にない 1 文字に一致する。バックスラッシュや引用符で囲むと、?、*、[ は特別な意味を失う。
例
.env* のように、.env や .env.local などの .env ファイルをまとめて指定するときにも、このパターンを使う。
注意点
一致はパスの要素ごとに調べるので、/ には ? も * も範囲も一致しない。ファイル名の先頭の . は明示的に書かないと一致しない。たとえば rm * では .profile は消えない。POSIX では、何にも一致しないパターンは空の一覧にならず、そのまま残る。bash で shopt -s nullglob を設定すると、空の一覧に展開される。