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