💨

WindowsとWSL2間で相互にファイルの参照やコマンドを実行する

2024/02/27に公開

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