pwd ごときな癖にちぃともポータビリティがなくて困るの

そういや cmd.exe でワーキングディレクトリを知りたい場合にどうしりゃいいだ? chdir に引数なし、か?

*unix だけで生活してればまぁ「ほぼこういうことは起こらない」ということが、「Windows で、色んな「Unix もどき」」を使ってると、pwd だけでも十二分に不愉快になれる。というか「仮想パス」が三者三様なのもね、ムゴい。

とりあえず、素の Windows、MSYS、MSYS2、cygwin の4つの話。素の Windows の話はまぁいいでしょ。まず MSYS。インストール場所が c:/MinGW/msys/1.0 だとした場合:

 1 me@host: ~$ cd /bin  # MSYS ワールドのパス
 2 me@host: ~$ pwd
 3 /bin
 4 me@host: ~$ cd /c/Windows  # Windows から見えるのと同じだが表記が違う(コロンを避けて posix に似せている)
 5 me@host: ~$ pwd
 6 /c/Windows
 7 me@host: ~$ cd /home/hhsprings
 8 me@host: ~$ pwd
 9 /home/hhsprings
10 me@host: ~$ pwd -W
11 C:/MinGW/msys/1.0/home/hhsprings

MSYS2 もこれと同じ。cygwin は「cygwin 世界でない「おドライブ」」を /cygdrive/c/ みたいなマウントで表現してるので、これだけでも「うぅ違うぜ」ってなるけど、それよりも cygwin bash の pwd には -W がないのが地味に困る。ワタシみたいに頻繁にこれら「別世界どおし」を行き来する人ほどそうだろう。

実は一つ前の話から今更ながらこれが気になってきてなぁ。無論ずーっとこれはストレスだったが、まぁ死にはしないしね、てことで黙殺してただけのこと。

今回はちと Microsoft の posix レイヤーは意図して無視したけどこれも本質は一緒。

ちょっと火がついてしまい、丸一日半くらいかけて「Portable pwd」を書いちゃった。PyPI に突っ込んだ「つもり」にはなってるので、pip でインストール「出来るはずのつもり」には「なってるつもり」。History 見たらわかる通り、実は何度か間違った upload をしてしまったりもしましたが、ワタシはゲンキです。

なんというか「エンドユーザレベルでのこの不満」だけが理由でワタシのこのアホパッケージを「喜んで」手に入れたい人なんてのはまぁ、ほとんどおらんと思うわね。どちかつーと、何かしらのビルドツール内で「移植性を少し上げれる手段」に使えるんじゃないのかな、て思ってる。てか一番そう使いたいのはまさに自分なんだけどね。