WSL なら wslpath コマンドでパスの形式を変換できる

以前、sed コマンドを使って Windows 形式のパスと UNIX 形式のパスを相互変換するスクリプトを作って紹介した。

しかし、どうやら最近の WSL には wslpath というコマンドが標準搭載されていて、コレを使えばパスを相互変換できるようだ。以下いくつか試してみたのでご参考に。

# Windows 形式のパスを UNIX 形式にする
$ wslpath 'C:\Windows\'
/mnt/c/Windows/

# オプション未指定時は `-u` オプションと同じ
$ wslpath -u 'C:\Windows\'
/mnt/c/Windows/

# `-a` オプションで、相対パスを絶対パスに変換できる
$ wslpath -a '.'
/home/neo/

# `-w` オプションでカレントディレクトリを Windows 形式に変換する例
$ wslpath -w '.'
\\wsl\Ubuntu\home\neo

# `-m` オプションでは `-w` と違い、バックスラッシュではなくスラッシュになる
$ wslpath -m '.'
//wsl/Ubuntu/home/neo

# Windows 形式になる
$ wslpath -w '/mnt/c/Windows/'
C:\Windows

# GitBash・GitSDK などのような Cygwin 形式ではダメで、`/mnt/c/` などと指定する必要がある
$ wslpath -w '/c/Windows/'
wslpath: /c/Windows/: No such file or directory

こりゃ便利だ…。