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
こりゃ便利だ…。