如何從Windows 10訪問Linux子系統中的文件

在19H1(目前處於Insider Preview階段,預計4月份正式推送)中,微軟爲適用於Linux的Windows子系統帶來了一項有趣的功能,這項功能容許用戶從Windows 10訪問Linux子系統中的文件,今天的這期教程,咱們來討論這一功能的具體用法。shell

1、前提條件ide

在開始使用這一新功能以前,請確保你的設備正在運行的Windows 10系統知足如下條件:spa

在開始使用上文咱們所提到的這一功能以前,請確保如下條件的知足:命令行

  • Windows 10 系統須爲19H1或更高版本;3d

  • Linux子系統已經安裝並啓用。blog

要在Windows 10中啓用Linux子系統,請先確認你的計算機所使用的處理器支持虛擬化技術,且該項功能已經開啓;教程

而後,咱們須要在「控制面板」-「程序」-「啓用或關閉Windows功能」中勾選「適用於Linux的Windows子系統」,接着從新啓動Windows 10;three

最後,咱們須要在微軟商店(過去叫Windows商店)中下載、安裝並簡單設置Linux子系統。資源

在適用於Linux的Windows子系統剛剛推出時,咱們只有一個Ubuntu發行版可選,不過如今,除了Ubuntu以外,咱們還能夠選擇openSUSE、SUSE Linux、Debian、Kali Linux等其餘發行版。博客

今天的這期教程適用於微軟商店中所提供的全部Linux發行版。

2、在資源管理器中訪問文件

如今,咱們已經可經過Windows 10中的文件資源管理器來Linux子系統中的文件,就像咱們平時訪問和管理Windows 10裏的文件同樣。對於Linux子系統中的文件,咱們不只可使用Windows 10的文件資源管理器來執行移動、複製和粘貼等操做,咱們甚至可使用Notepad++或者Visual Studio Code來編輯它們。

當咱們處於Linux子系統的命令行窗口時,只需輸入並執行下面這行命令,咱們便可以在Windows文件資源管理器中訪問和管理Linux子系統中咱們當前所處的文件路徑下的文件:

explorer.exe .

提示:在輸入和執行以上命令時,請注意,explorer.exe和.之間有個空格。

例如,當咱們在正在運行的Linux子系統中執行下面這行命令:

cd /home/

那麼咱們所處的路徑將爲/home/

此時,咱們若在Linux的命令行中執行下面這行命令:

explorer.exe .

那麼Windows文件資源管理器將會訪問Linux子系統中/home下的文件和文件夾。

一樣地,咱們能夠經過這一原理訪問Linux子系統中幾乎全部的文件。

3、在PowerShell中訪問文件

有些時候,咱們須要在PowerShell中訪問Linux子系統裏的文件,這並不是是件難事。

Linux子系統的文件目錄在Windows文件資源管理器中的路徑爲:

\\wsl$\正在運行的Linux發行版的名稱\

例如:

\\wsl$\Ubuntu

熟悉CMD或者PowerShell命令的同窗可能已經猜到應該怎樣作了。是的,用dir命令便可。

例如,若是咱們想要使用PowerShell來訪問Ubuntu子系統中的文件,那麼咱們一共須要執行兩條命令,第一條命令是:

cd \\wsl$\Ubuntu

這條命令的做用是切換到Linux子系統根目錄中的文件所在的路徑;

第二條命令是:

dir

這條命令是獲取當前文件路徑下的文件(包括文件夾)列表。

4、已知問題

經過文件資源管理器來訪問Linux子系統中的文件是Windows 10上的一個新功能(目前處於預覽階段),它可能並不完美,如下是微軟在其官方博客中提到的一些已知問題:

一、就目前來講,只有當某一Linux子系統運行時,咱們才能夠從Windows文件資源管理器訪問它裏面的文件,據IT之家瞭解,微軟將會在將來的Windows更新中提供文件資源管理器對處於非運行狀態的Linux子系統中的文件的訪問支持。

二、若是你想在命令提示符(CMD)中操做Linux子系統裏的文件,那麼請注意,因爲CMD不支持將UNC路徑做爲當前目錄,因此相似於:

cd \\wsl$\Ubuntu\home

這樣的命令是沒法執行的。

不過,相似於下面這樣的命令執行起來則沒有問題:

copy \\wsl$\Ubuntu\home\threeseven\MyFile\test.txt C:\LinuxFiles\

這行命令的做用是將Ubuntu系統/home/threeseven(用戶文件夾)/MiFiles/test.txt複製到Windows系統C盤的LinuxFiles文件夾內。

三、不要經過AppData文件夾訪問你的Linux子系統中的文件,由於這頗有可能會致使Linux系統中的文件損壞。

5、導出Linux分區至Windows 10

若是當前Windows 10中有Linux子系統正在運行,那麼在將Linux分區導出至Windows 10以前,請先結束目標Linux子系統的運行。方法以下:

首先,咱們須要知道當前有哪些Linux發行版正在運行。爲此,咱們能夠在Windows 10的命令提示符或者PowerShell中輸入並運行這行命令:

wsl.exe --list --running

以Ubuntu爲例,若要結束它的運行,那麼咱們須要執行的命令爲:

wsl.exe --terminate Ubuntu

若是你嫌上面那行命令太長,那麼運行這行命令也能夠:

wsl -terminate Ubuntu

如今,咱們已經結束了Linux子系統的運行。若是你忘了執行這一步也不要緊,由於當咱們開始把Linux分區導出至Windows 10時,Linux的運行將被強行終止。

要將Linux分區導出至Windows 10,咱們須要打開命令提示符或者Powershell,而後執行這個命令:

wsl.exe --export Linux發行版的名稱 要導出到的位置\導出的壓縮文件的文件名

例如,咱們想把Linux分區導出至桌面,那麼以小編的電腦爲例,咱們應該在命令提示符或者PowerShell裏面執行的命令爲:

wsl --export Ubuntu C:\Users\ThreeSeven\Desktop\Ubuntu.tar

在導出文件時,請耐心等待,由於導出的過程須要一些時間。

導出完成後,咱們能夠在目標位置看到一個.tar格式的壓縮文件,這個壓縮文件裏面的內容就是Linux分區中的所有文件。

6、將導出的Linux歸檔文件導入到一個新的Linux子系統

在上一小節,咱們已經將Linux分區中的所有文件導出到Windows 10的桌面的一個歸檔文件裏,如今,咱們再嘗試着把這些文件導入到一個新的Linux子系統當中。這一操做能夠用於克隆Linux子系統。

要執行這一導入操做,咱們能夠在命令提示符或者PowerShell中執行這條命令:

wsl.exe --import 新的Linux子系統的名稱 新的Linux子系統的目標位置 TAR歸檔文件的路徑

例如:

wsl.exe --import Ubuntu_New C:\Ubuntu_New C:\Users\ThreeSeven\Desktop\Ubuntu.tar

在導入文件時,請耐心等待,由於導入的過程須要一些時間。

導入成功後,咱們能夠在新的Linux子系統的目標位置看到這樣兩個文件夾:

要運行新的Linux子系統,咱們須要在命令提示符或者PowerShell中執行如下命令:

wsl --distribution 新的Linux子系統的名稱

例如:

wsl --distribution Ubuntu_New

若要刪除咱們經過導入Linux歸檔文件而獲得的這個新的Linux子系統,咱們能夠在命令提示符或者PowerShell中執行這條命令:

wsl.exe --unregister 目標Linux子系統的名稱

例如:

wsl.exe --unregister Ubuntu_New

7、總結

在今天的這期教程中,咱們討論了在Windows 10的文件資源管理器和PowerShell中訪問Linux文件的方法,此外,咱們還了解了如何將Linux分區導出至Windows 10以及如何將Windows 10中的Linux歸檔文件導入到一個新的Linux子系統當中。文中所述的方法看起來很是簡單,若親自動手實踐,你會發現它們作起來就和看起來同樣簡單。想要了解更多關於Windows的使用技巧,請繼續關注後續的文章。

相關文章
相關標籤/搜索