wildcardとは何か?shellのパターン文字
wildcardは、shellがファイル名を一致させるときに、1つ以上の他の文字を表す*や?のような特殊文字です。
wildcardはshellパターンの構成要素です。何にでも一致するアスタリスク、1文字に一致する疑問符、これらによって各ファイルを名指しせずに一度に多くのファイルを参照できます。CIスクリプトはwildcardを使ってbuildの出力、テストファイル、logを選択するため、ルールを知っておくと驚きを避けられます。
wildcardとは何か
wildcardは、shellがファイル名展開中に特別に解釈するplaceholder文字です。リテラルの記号に一致するのではなく、何らかの文字のセットを表します。
主なwildcard
*は、何もない場合を含め、任意の文字の並びに一致します。?はちょうど1文字に一致します。[...]は角括弧内に列挙された任意の1文字に一致します。[!...]は列挙されていない任意の1文字に一致します。
wildcardとglobbing
wildcardは文字であり、globbingはそれらから構築されたパターンをファイル名に展開するプロセスです。この2つの用語は密接に関連しており、人々はしばしばそれらを同じ意味で使います。
wildcardが適用されないとき
クォート内では、wildcardは特別な意味を失い、リテラルとして扱われます。"*.js"はパターンではなく2文字の文字列であり、これはパターンを別のツールに渡したいときに重要です。
CIにおけるwildcard
coverage/*.xmlをuploadするworkflowは、shellまたはactionがwildcardを展開することに依存します。(pathフィルタのように)shellではなくツールがそれを展開すべき場合、shellがそれをそのままにするようクォートする必要があるかもしれません。
マネージドrunnerでのファイル一致
Latchkeyのrunnerでは、wildcardは任意のLinux shellと同じように動作します。test runnerのようなツールにパターン自体を処理させたいときは、shellが先に展開しないようにクォートしてください。
重要なポイント
- wildcardは、パターン内で他の文字を表す*や?のような文字です。
- wildcardはshellのファイル名展開であるglobbingを駆動します。
- パターンをクォートすると、shellがwildcardを展開しなくなります。
関連ガイド
What Is Globbing? Filename Pattern ExpansionGlobbing is the shell expanding wildcard patterns into matching filenames. Learn how globbing works and how i…
What Is Quoting in the Shell? Controlling ExpansionQuoting in the shell controls how text is split and expanded. Learn the difference between single and double…
What Is a Shell? The Command Interpreter ExplainedA shell is the program that reads your typed commands and asks the operating system to run them. Learn what a…