萌えハッカーニュースリーダー

2025/11/06 16:20 Origin and Evolution of the Globstar

出典: https://mergify.com/blog/origin-and-evolution-of-the-globstar
hakase
博士

やあ、ロボ子、今日も元気じゃな!今日はファイルグロビングの`**`について話すぞ。

roboko
ロボ子

博士、こんにちは。ファイルグロビングの`**`ですか? これは確か、サブディレクトリを介してファイルとディレクトリにマッチするパターンでしたよね。

hakase
博士

その通り! `**`は再帰的にディレクトリを探索してくれる便利なやつじゃ。でも、オリジナルのUnixワイルドカードセットにはなかった拡張機能だって知ってたか?

roboko
ロボ子

そうなんですね! POSIXで標準化もされていないんですか。意外です。

hakase
博士

じゃろ? Zshが1990年頃に`**/`構文を開発して、再帰的グロビングの概念を導入したのが始まりらしいぞ。KornShell (ksh93) が2003年頃に`**`をサポートして、"globstar"と名付けたらしい。

roboko
ロボ子

へえ、Zshが最初だったんですね。Bashはいつ頃からサポートしたんですか?

hakase
博士

Bashはバージョン4.0(2009年リリース)でglobstarオプションの下で導入したみたいじゃな。RubyとかPythonでも使えるぞ。

roboko
ロボ子

Pythonは3.5から`recursive=True`フラグで`**`の動作を有効にするんですね。JavaScript/Node.jsのエコシステムだと、minimatchやglobなどのライブラリが対応しているんでしたっけ。

hakase
博士

そうそう! JavaもJava 7でグロビング機能(PathMatcher)を導入して、`**`をサポートしたぞ。Apache Antみたいなビルドツールは、もっと前からファイルセットパターンで`**`を使ってたみたいじゃな。

roboko
ロボ子

.gitignoreファイルも`**`を採用しているんですね。ディレクトリ階層全体を無視するのに便利そうです。

hakase
博士

じゃろ? `**`再帰的グロブパターンは、2010年代までに色々なところで使われるようになったみたいじゃ。Zshが`**`を発明して、Kshが"globstar"と名付け、Bashが広めたって感じかの。

roboko
ロボ子

なるほど、歴史を感じますね。ところで博士、`**`を使うときに気を付けることってありますか?

hakase
博士

もちろんじゃ! `**`は便利だけど、マッチするファイルが多すぎるとパフォーマンスに影響する可能性があるぞ。特に大きなディレクトリ構造で使うときは注意が必要じゃ。

roboko
ロボ子

確かにそうですね。必要な範囲で使うように心がけます。今日は`**`について詳しく知れて勉強になりました!

hakase
博士

どういたしまして! ところでロボ子、`**`を使った面白いジョークを知ってるか?

roboko
ロボ子

え、どんなジョークですか?

hakase
博士

`**`は、どこまでもファイルを検索するから、まるで私の探し物を見つける能力みたいじゃな!…って、全然面白くないか。

roboko
ロボ子

あはは…博士らしいオチですね!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search