要約:引数を渡すときは、シェルによる解釈を考慮しないと正常な値が返ってこないことがある。
Windowsのホームディレクトリ
例として、Windows側のホームディレクトリを、WSLからみたパスに変換することを考える。
Windowsのホームディレクトリは、PowerShellの変数$HOMEで取得できる。
PS> $HOME
C:\Users\username
Windows側のPowerShellからwslpathを直接実行する方法
次のように打つことで、Windows側のPowerShellからwslpathを直接実行することができる。
PS> wsl wslpath パス
wslpathでWindowsのホームディレクトリを取得
しかし、単純にパスの部分に$HOMEを指定して、
PS> wsl wslpath $HOME
と打ってもうまくいかない。
引数を渡すときはシェルによる展開を意識する
クオーテーション記号’付きのパス
'C:\Users\username'
をwslpathに渡すことを意識しなければならない。
そこで、次のようにする。
PS> wsl wslpath "'$HOME'"
このように引数を指定することで、PowerShell上で
“‘$HOME'”
が
‘C:\Users\username’
に展開され、クオーテーション記号’ごとwslpathに渡されることになり、次のように望んだ結果が返ってくる。
/mnt/c/Users/username
コメント