エクスプローラでWSL2(ubuntu)のディレクトリを開く方法

2020年11月28日Windows

WSL2を利用していると、Windows側で「このディレクトリやファイルを開きたい」と思うことがありますよね。

具体的には、以下のようなことを考えたことはないでしょうか。

  • Windows側とWSL2(Ubuntuなど)のファイルをやり取りする方法がわからない
  • エクスプローラでWSL2のディレクトリにアクセスする方法がわからない
  • WSL2のターミナル操作しているディレクトリをエクスプローラで開きたい
  • Windows側のディレクトリをWSL2のターミナルで操作したい

この記事では、Windows側からWSL2側のディレクトリやファイルにアクセスする方法をいくつかご紹介します。

また、WSL2のターミナルからWindows側(例えばCドライブの〇〇フォルダ)にアクセスする方法についてもまとめました。

Windows側からWSL2のディレクトリを開く方法

Windows側からWSL2側のディレクトリやファイルにアクセスする方法を2つ紹介します。

どちらの方法もエクスプローラでWSL2側のディレクトリを開く方法です。

 

エクスプローラのアドレスバーに「\wsl$」と入力する」

1つ目はWindowsをメインで操作中にWSL側のディレクトリを参照したい場合です。

Windows側からWSL2(Ubuntuなど)のディレクトリをエクスプローラでアクセスしたい場合は、エクスプローラのアドレスバーに以下のパスを入力するとインストール済みのWSL2のOSのディレクトリが表示されます。

\\wsl$

以下は、Ubuntuの場合のエクスプローラの画面です。

WSL2のターミナルで操作中のディレクトリをexplorerで開く方法

WSL2で開発中などに「ちょっとこの画像ファイルをWindows側でひょうじさせたいなぁ」と思うことがよくあります。

その場合は、WSL2のターミナルで以下の通り入力しましょう。

explorer.exe .

「explorer.exe .」でカレントディレクトリをエクスプローラで開くことができます。

これは、WSL2の環境変数($PATH)にWindows側の「c:\windows\」が設定されているためexplorer.exeがwsl側でも利用できるためです。

「explorer.exe: command not found」と表示される場合の解決方法

「explorer.exe .」を実行すると「explorerが見つからない」とエラーになる場合がありますが、これは、環境変数($PATH)に「c:\windows\」が設定されていないためです。

$ explorer.exe .
explorer.exe: command not found

それでは、環境変数($PATH)に「c:\windows\」していきましょう。

環境変数に[/mnt/c/windows]が設定されていないか確認する

以下のコマンドを実行し現在$PATHに設定されているパスを確認します。

echo $PATH

これで、「/mnt/c/windows」が表示されていれば設定済みですが、explorerの呼び出しに失敗する場合は恐らく表示されていないと思われます。

また、WSL2上でWindows側のCドライブは「/mnt/c」にマウントされていますので、「c:\windows」はWSL2では「/mnt/c/windows」でアクセスできます。

.bashrcで「/mnt/c/windows」をexportする

「.bashrc」はWSL2起動時に読み込まれるファイルですので、毎回追加したい操作などは「.bashrc」に追加すると便利です。

操作手順としては、まず「.bashrc」を開きます。

cd ~
vim .bashrc

「.bashrc」ファイルに以下のコマンドを追記します。

export PATH=$PATH:'/mnt/c/windows'

「.bashrc」ファイルを編集した後は設定を有効にするために再読込しましょう。

source .bashrc

WSL2からexplorerが呼び出せるか確認する

explorerが呼び出せるか確認してみましょう。

任意のディレクトリで以下のコマンドを実行してみましょう。

explorer.exe .

これで、操作中のディレクトリがエクスプローラで開くことができれば完了です。

カレントディレクトリをエクスプローラで開くエイリアスを登録する

「explorer.exe .」カレントディレクトリをエクスプローラで開くことができるようになりましたが、毎回「explorer.exe .」と入力するのは面倒です。

コマンドをエイリアスとして登録しておくと便利になりますので、設定しましょう。

.bashrcにエイリアスを登録する

私の場合は「ee」でカレントディレクトリをエクスプローラで開くようにしていますので、同じ設定にする場合は、「.bashrc」ファイルに以下のコマンドを追記します。

alias ee='explorer.exe .'

これで「.bashrc」を再読込すると「ee」でカレントディレクトリがエクスプローラで開くようになっているはずです。

「.bこれashrc」を再読込すると「ee」でカレントディレクトリがエクスプローラで開くようになっているはずです。

WSL2側からWindows側のファイルを操作したい場合などは、WSL2のターミナルでWindowsのディレクトリにアクセスする方法を知っておくと便利です。

WSL2ではWindowsのCドライブは「/mnt/c/」にマウントされていますので、アクセスするのは簡単です。

例えば、「C:\temp」のフォルダにアクセスする場合は、以下のようにします。

cd /mnt/c/temp

まとめ

WSL2もかなり実用レベルに成熟されてきましたので、今後はWindows+WSL2で開発を行っていく機会がますます増えて行くことになると思います。

今回は、WindowsとWSL2間でのファイルのやり取りについてご紹介しました。

一度慣れてしまえば簡単に操作できますので、利用してみてください。

Windows

Posted by snow