ググりにくいんだけど、あんまり呼称が定着指定ない感じもしたので調べてみた
TL;DR
ディレクトリパスの指定などで **
と書くことがあり、その際の呼称を globstar
と記載することがある。なお globstar
という呼称で呼ばれるのはbashのオプション名が起源かと思われる。
**が登場するドキュメント
Docker
Dockerの設定としても登場する。
Go 言語の filepath.Match ルールを拡張し、 Docker は特別なワイルドカード文字列 ** もサポートします。これは、(0も含む)複数のディレクトリに一致します。 - Dockerfile リファレンス — Docker-docs-ja 20.10 ドキュメント
GitHub Actions
GitHub Actionsでフィルタパターンとして登場している
・ ゼロ個以上のキャラクタにマッチしますが、/にはマッチしません。 たとえばOctoはOctocatにマッチします。
・** ゼロ個以上の任意のキャラクタにマッチします。
- GitHub Actionsのワークフロー構文 - GitHub Docs
そもそもglobとは
wikipediaの記述が的確なので転載する。
グロブ(英: glob)とは主にUnix系環境において、ワイルドカードでファイル名のセットを指定するパターンのことである。例えば、UNIXのコマンド「mv .xlsx 営業実績/」はカレントディレクトリから営業実績/ディレクトリへと.xlsxで終わる全てのファイルを移動する。ここで、は「任意の文字列」を表すワイルドカードであり、.xlsxはグロブである。以外に一般的なワイルドカードは疑問符 (?) であり、これは任意の1文字を表す。 - グロブ - Wikipedia
このようにワイルドカードとセットで表現した文字列のことをグロブという。
globstarという呼び方の由来について
紹介したドキュメントで **
という記法は登場するが、大体記号を記載することで説明としては完結するので、ドキュメント上は「globstar
(グロブスター)」という表現は登場しない。
そのため明示的に「globstar
(グロブスター)」という呼称を使っているものはどこが起源かというところが見当たらないので、少し調べてみた。
**
という記法の起源
下記のブログ曰く、 **
という記法は、zshが起源ではないかとされている。
そしてついに Zsh-2.2 の Modification history に、 **/ が出現します。 (中略) 時に、1992/05/14。 ここまでの経緯を見るに、zsh が元祖ではないか?と私には見えました。 -再帰globパターン **/ の元祖は zsh なのか、調べてみた - hkoba blog
しかしながらzshのドキュメントにはglobstarという表現は見当たらない、そこでもう少し追う。
bashでの利用とオプション名としての命名
この **
は bashで利用したい場合 globstar
という名前でオプション指定できるようになっている。
シェル変数「globstar」を有効にすると、「**」によるパス名展開を使用できるようになります。 - 【 shopt 】コマンド(応用編その5)――「**」によるパス名展開を可能にする:Linux基本コマンドTips(366) - @IT
このglobstarオプション自体が(bashに加わったのはversion4で、時系列としては2005年あたりになるが、ざっくり調べて見たがこれ以外にglobstarという表現を使っているケースが無く、おそらくこのbashのオプション表現が呼び名としての起源かと推察される。