hirokuma

View the Project on GitHub

2024/04/14

WSL2でシンボリックリンクしたディレクトリはWindows側からはファイルに見える

私がWSL2を使う場合はコンソールからかVisual Studio Code経由が多いのだが、ちょっとファイルを見たいだけならエクスプローラを使って直接見ることもある。

image

パスはUNCで\\wsl.localhost\Ubuntu\homeのような感じになっているのだが、WSL2でシンボリックリンクしているファイルやディレクトリにはそれが使えない。
私の場合、VHDファイルをwsl2.exe --mount --vhdでマウントしているのだが、マウントしたパスは--nameで名前での指定しかできないようだ。マウント先は/mnt/wsl/<名前>になるようなのだ。 /homeの下で使いたいのでシンボリックリンクしているのだが、自動的にエクスプローラでたどってくれないのでそうなるのだった。
まあ、それくらい仕方ないと思っているのでよいのだけどね。。。

HTMLファイルに結果が出力されるのでブラウザで見たいというだけなのだ。vscodeだとちょっと見栄えが違うのでブラウザで開きたいのよね。
ただ、explorer.exe .のようにするとカレントディレクトリが見える状態でエクスプローラが立ち上がってくれて、それがシンボリックリンクしたフォルダであっても自動的に/mnt/wsl以下にあるディレクトリが開いてくれた。 だからそこまで困るものではないのだった。
そして今気付いたが、Visual Studio Codeはcode .で自動的にWindowsのVisual Studio Codeがカレントディレクトリで開いてくれた。 エクスプローラはexplorerではなくexplorer.exeじゃないと起動しないのでそういうものだと思っていたのだが、スクリプトでうまいことやっているようだ。

$ which code
/mnt/c/Program Files/Microsoft VS Code/bin/code
$ which explorer
$