How to open windows explorer from current working directory of WSL shell?
When I type "bash" to the windows explorer address bar and hit Enter, it opens the shell in that directory. Often I find myself wanting to work on files with windows programs in the working directory I reached through shell. Is there an easy way to open explorer from the location reached through shell?
To open the current directory in Explorer - use the following (WSL sets the Windows path by itself):
explorer.exe .
You can set alias with .bashrc
for a custom command:
echo 'alias explorer="explorer.exe ."' >> ~/.bashrc
source ~/.bashrc
Now just use:
explorer
to open the current working directory in Windows Explorer.
Microsoft provides a binary wslpath
for exactly this purpose.
explorer.exe `wslpath -w "$PWD"`
Cribbing from the github issue asking for usage info, there are 4 options - -a
, -u
, -w
and -m
.
wslpath usage:
-a force result to absolute path format
-u translate from a Windows path to a WSL path (default)
-w translate from a WSL path to a Windows path
-m translate from a WSL path to a Windows path, with ‘/’ instead of ‘\\’
EX: wslpath ‘c:\users’
For WSL2 you can access to home directory from windows like this :
\\wsl$
Sorry to be late at the party!
From a WSL shell prompt, run
explorer.exe "Windows path"
such as
explorer.exe L:
If L: maps to your desired directory (any unused drive letter may be used for this). You can map to network drives within Explorer, or to a local folder with SUBST.
Problem is, your /home/USERNAME/ folder in WSL appears to Windows something like C:\Users\YOURUSERNAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\tester . You could use SUBST to turn this into a drive letter a la
SUBST L: C:\Users\YOURUSERNAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\tester
then use a relative path from L: for your destination.
Let's say you have a WSL folder /home/YOURUSERNAME/acme/novelties
. You could get close to there with explorer.exe L:
but explorer.exe L:acme
or explorer.exe acme\novelties
will not bring you to where you wish to be, and instead will bring you to your Windows user Documents folder, instead.
I have created a little tool called eopen
to open Explorer easily.
https://github.com/ko1nksm/eopen
Usage: eopen [options] [file | directory | uri]
options:
-e, --editor Open the file in text editor ($EOPEN_EDITOR)
-n, --new Open the specified directory in new instance of explorer
--sudo Use sudo to write the unowned file
-v, --version Display the version
-h, --help You're looking at it
note:
The file or the directory allows linux and windows path.
(e.g. /etc/hosts, C:/Windows/System32/drivers/etc/hosts)
The uri must start with protocol schema. (e.g http:, https:)
And here are another solution. https://github.com/4U6U57/wsl-open