コマンド一発で WSL のファイルをエクスプローラーで開く

WSL の画像ファイルや PDF ファイルを GUI で確認したいとき、Windows のアプリケーションからコマンド一発で開けないかと思い、ファイルパスを変換する関数を書いた。
Windows のアプリケーションのコマンドに渡す前に、ファイルのパスを変換して渡してあげれば、一発になる。一応。

以下の関数を定義し

function to_winpath() {
  wsl_path=`powershell.exe -Command 'echo ($env:LOCALAPPDATA + "\lxss")' | tr -d '\r'`

  abs_path=`readlink -f $1`
  internal_path=${abs_path//\//\\}

  echo "${wsl_path}${internal_path}"
}

次のように、コマンドに渡してあげればいい。このコマンドではエクスプローラーで PDF ファイルを開いている。

$ explorer.exe `to_winpath sample.pdf`

しかし、タイプが増えるので面倒。