Windowsエクスプローラーのアドレスバーに「bash」と入力してEnterキーを押すと、そのディレクトリにシェルが開きます。シェルを介してアクセスした作業ディレクトリ内のWindowsプログラムでファイルを操作したいと思うことがよくあります。シェルを介して到達した場所からエクスプローラーを開く簡単な方法はありますか?
現在のディレクトリをエクスプローラーで開く-次を使用します(WSLはWindowsパスを単独で設定します)。
Explorer.exe .
set alias with .bashrc
カスタムコマンドの場合:
echo 'alias Explorer="Explorer.exe ."' >> ~/.bashrc
source ~/.bashrc
今すぐ使用してください:
Explorer
windowsエクスプローラで現在の作業ディレクトリを開きます。
Microsoftは、まさにこの目的のためにバイナリwslpath
を提供しています。
Explorer.exe `wslpath -w "$PWD"`
Githubの問題 からの使用情報を要求するクリビングには、4つのオプションがあります--a
、-u
、-w
および-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’
WSLシェルプロンプトから、次を実行します。
Explorer.exe "Windows path"
といった
Explorer.exe L:
L:が目的のディレクトリにマップされている場合(これには未使用のドライブ文字を使用できます)。エクスプローラー内のネットワークドライブ、または [〜#〜] subst [〜#〜] を使用してローカルフォルダーにマップできます。
問題は、WSLの/ home/USERNAME /フォルダーがWindowsにC:\ Users\YOURUSERNAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\testerのように表示されることです。 SUBSTを使用して、これをドライブ文字a SUBST L: C:\Users\YOURUSERNAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\tester
に変換してから、宛先にL:からの相対パスを使用できます。
WSLフォルダ/home/YOURUSERNAME/acme/novelties
があるとします。 Explorer.exe L:
を使用すると近づくことができますが、Explorer.exe L:acme
またはExplorer.exe acme\novelties
を使用しても目的の場所には移動せず、代わりにWindowsユーザーのドキュメントフォルダーに移動します。
エクスプローラを簡単に開くためのeopen
という小さなツールを作成しました。 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:)
そしてここに別のソリューションがあります。 https://github.com/4U6U57/wsl-open
WSL2の場合、次のようなウィンドウからホームディレクトリにアクセスできます。
\\wsl$
パーティーに遅れてすみません!
上記の@ sole-senseiと@laveryaからの部分的な回答を最大限に活用して、次のエイリアスを〜/ .bash_aliasesに追加します(または、何らかの理由で別のエイリアスファイルが不要/~/.bashrcでない場合) :
alias Explorer='Explorer.exe `wslpath -w "$PWD"`'
最後にタグを付けることを気にしない場合(私はそれをきれいに整理しておくのが好きなので私はしません):
echo 'alias Explorer="Explorer.exe ."' >> ~/.bash_aliases
source ~/.bash_aliases
新しいWindowsターミナルをサポートするだけで ctrl-C そして ctrl-V (右クリック?!本当にマイクロソフト?!?)本当に準備は整っています!
私はcmd.exe /c start .
すると、現在のディレクトリでファイルエクスプローラーが開いているはずです。
damo@laptop:/mnt/c/Windows/System32$ pwd
/mnt/c/Windows/System32
damo@laptop:/mnt/c/Windows/System32$ cmd.exe /c start .
<opens file Explorer in c:\Windows\System32>
damo@laptop:/mnt/c/Windows/System32$ cd ~
damo@laptop:~$ pwd
/home/damo
damo@laptop:~$ cmd.exe /c start .
<opens file Explorer in c:\Windows\System32>
damo@laptop:~$ cd /mnt/c/stuff
damo@laptop:~$ cmd.exe /c start .
<opens file Explorer in c:\stuff>
次のように設定して、エイリアスを作成しますalias start='cmd.exe /c start
これにより、単純にstart .
任意のディレクトリから。
これは私のバージョンのコードです
Explorer() {
pwd -P | xargs wslpath -w | sed "s~C:\\\Users\\\User\\\Desktop~d:~" | xargs -0 Explorer.exe
}
Windowsではsubst
ドライブを使用しています。 sed
の部分がこれを変換します。この機能を使用しない場合は、除外できます。
注:symlink
ドライブまたはsubst
ドライブをカバーしていないため、すでに多数ありますが、この回答を投稿しました。