WindowsとWSL2間で相互にファイルの参照やコマンドを実行する
WindowsとWSL2(Linux)のファイルの相互参照やコマンドの相互実行
WindowsからWSL2で起動しているLinuxのファイルの参照やコマンドの実行をしたい場合や逆にLinuxからWindowsのファイルの参照やコマンドを実行したい場合があります。
その方法を簡単にまとめました。
使用環境
使用環境は以下の通りです。
- Windows 11
- WSL2 (Ubuntu-22.04)
- Windows Terminal
フォルダを参照したい
Windowsで実行
WindowsからLinuxのファイルシステムにアクセスするには、エクスプローラーのアドレスバーに\\wsl.localhost\
を入力します。
これにより、インストールされているLinuxディストリビューションのファイルシステムにアクセスできるようになります。
エクスプローラーの左のナビゲーションウィンドウにLinux
が表示されるので、そこからたどることもできます。
Linuxで実行
Linux内でWindowsのファイルを参照する
/mnt
にドライブがマウントされているので、Linuxから直接Windowsのファイルにアクセスできます。
例えば、cドライブは、/mnt/c/
です。
Linuxからエクスプローラーを起動する
ターミナル上でexplorer.exe
を実行するとエクスプローラーが起動できます。
Linux上のパス指定も可能ですが、カレントディレクトリかサブディレクトリだけのようです。
指定されてパスが認識できない場合は、ドキュメントフォルダーが開かれます。
explorer.exe .
を実行すると、現在のディレクトリがエクスプローラーで開かれます。
コマンドを実行したい
Windows上でLinuxのコマンドを実行
WindowsからLinux上でコマンドを実行する場合は、wsl.exe -e linux上のコマンド
を使用します。このコマンドを使うと、指定したLinuxコマンドをWSL経由で実行できます。
ただし、パス指定する場合は、Linux形式のパスで指定する必要があります。
絶対パスの場合は、/mnt/c/~
パス指定しない場合はファイル名だけでOKですが、ディレクトリの中のファイルを指定する場合は、\ではなく/を使います。
wsl -e less dirname/file.txt
Linux上でWindowsのコマンドを実行
LinuxからWindowsの実行する場合は、対象のexeファイルをフルパスで指定して実行します。
PATHが指定されている場合は、ファイル名だけで実行できます。
例えば、mspaint.exe
を実行するとペイントが起動します。
残念ながら、Linux上のファイルパスを指定できるアプリとできないアプリがあります。
まとめ
WindowsとWSL2の相互コマンド実行と相互ファイル参照の方法についてまとめました。
Linux上のターミナルからエクスプローラーを起動するのは、ちょっとしたときに便利です。
Discussion