[WSL#5] WSL 2與Windows的交互操作

1. WSL用檔案總管開啟目錄

PATH環境變數找得到的執行檔都能執行。

explorer.exe "Windows路徑"

explorer.exe "c:\windows\system32"
explorer.exe 'c:\windows\system32'
explorer.exe c:\\windows\\system32

  • 雙引號裡反斜線用單個
  • 單引號單個或雙個反斜線皆可
  • 無雙引號時用兩個反斜線

▼ 開啟目前目錄

explorer.exe .

1.1. wslpath命令可以轉換需要的路徑

命令選項 功能 範例 結果
-a 轉換為完整路徑 wslpath -a themes /home/jerry/.oh-my-zsh/themes
-u 將Windows路徑轉換成WSL路徑 wslpath -u c:/windows/system32 /mnt/c/windows/system32
-w 將WSL路徑轉換為Windows路徑 wslpath -w ~/.zshrc \\wsl$\Ubuntu-18.04\home\jerry\.zshrc
-m 同上,但反斜線變成正斜線 wslpath -m ~/.zshrc //wsl$/Ubuntu-18.04/home/jerry/.zshrc

1.2. 檔案總管開啟Linux路徑的方法

explorer.exe `wslpath -w $ZSH_CUSTOM`

1.3. alias與wslpath

alias命令無法使用 $1 這樣的引數寫法,可以用函數取代。
例如定義一個alias ee用EmEditor開啟一個WSL檔案:

alias ee=/mnt/c/util/EmEditor/EmEditor.exe $1

ee wslpath -w ~/.zshrc

❌下面會出現錯誤:

alias ee=/mnt/c/util/EmEditor/EmEditor.exe `wslpath -w $1`

用函數解決:

ee() {
  FileName=`wsl -w $1`
  mnt/c/util/EmEditor/EmEditor.exe $FileName
}

❓ 補充1:如何顯示Shell函數的內容?
用declare -f ee

❓ 補充2:如何移除Shell函數
用unset -f ee

2. WSL存取Windows磁碟

/mnt/固定磁碟代號
如:/mnt/c、/mnt/d

  • 目錄名稱有空白時以反斜線當跳脫字元
    > cd /mnt/c/Program\ Files\
    > cd "/mnt/c/Program Files"
    > cd '/mnt/c/Program Files'
    >

建立符號連結以快速指定磁碟:

sudo ln -s /mnt/c /c
sudo ln -s /mnt/d /d

cd "/c/Program Files"

3. WSL存取USB隨身碟等移動磁碟

sudo mkdir /mnt/usb
sudo mount -t drvfs F: /mnt/usb
ls /mnt/usb

sudo umount /mnt/usb

把/mnt/usb建立成/mnt/f、/mnt/g等,與Widnows的隨身碟磁碟代號對應。

4. WSL存取網路磁碟

Windows必須先建立磁碟代號:

▼ 建立網路磁碟機M:

net use m: \\192.168.0.5\Multimedia /user:jerry password

▼ WSL

sudo mkdir /mnt/net
sudo mount -t drvfs M: /mnt/net

# 或直接使用;用單引號
sudo mount -t drvfs '\\192.168.0.5\Multimedia' /mnt/net

5. Windows 開啟WSL目錄或檔案

  • wsl.exe --list 查出安裝的Linux發行版
start \\wsl$\Ubuntu-18.04\
  • WSL的路徑被當做網路資源在使用
net use u: \\wsl$\Ubuntu-18.04
u:
cd \home\jerry
dir

解說影片

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *