當前位置:
首頁 > 科技 > 如何從Win10訪問Linux子系統中的文件

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

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

一、前提條件

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

在開始使用上文我們所提到的這一功能之前,請確保以下條件的滿足:

Windows 10 系統須為19H1或更高版本;

Linux子系統已經安裝並啟用。

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

然後,我們需要在「控制面板」-「程序」-「啟用或關閉Windows功能」中勾選「適用於Linux的Windows子系統」,接著重新啟動Windows 10;

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

在適用於Linux的Windows子系統剛剛推出時,我們只有一個Ubuntu發行版可選,不過現在,除了Ubuntu之外,我們還可以選擇openSUSE、SUSE Linux、Debian、Kali Linux等其他發行版。

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

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

現在,我們已經可通過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子系統中幾乎所有的文件。

三、在PowerShell中訪問文件

有些時候,我們需要在PowerShell中訪問Linux子系統里的文件,這並非是件難事。

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

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

例如:

\wsl$Ubuntu

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

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

cd \wsl$Ubuntu

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

第二條命令是:

dir

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

四、已知問題

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

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

2、如果你想在命令提示符(CMD)中操作Linux子系統里的文件,那麼請注意,由於CMD不支持將UNC路徑作為當前目錄,所以類似於:

cd \wsl$Ubuntuhome

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

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

copy \wsl$Ubuntuhome hreesevenMyFile est.txt C:LinuxFiles

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

3、不要通過AppData文件夾訪問你的Linux子系統中的文件,因為這很有可能會導致Linux系統中的文件損壞。

五、導出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:UsersThreeSevenDesktopUbuntu.tar

在導出文件時,請耐心等待,因為導出的過程需要一些時間。

導出完成後,我們可以在目標位置看到一個.tar格式的壓縮文件,這個壓縮文件裡面的內容就是Linux分區中的全部文件。

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

在上一小節,我們已經將Linux分區中的全部文件導出到Windows 10的桌面的一個歸檔文件里,現在,我們再嘗試著把這些文件導入到一個新的Linux子系統當中。這一操作可以用於克隆Linux子系統。

要執行這一導入操作,我們可以在命令提示符或者PowerShell中執行這條命令:

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

例如:

wsl.exe --import Ubuntu_New C:Ubuntu_New C:UsersThreeSevenDesktopUbuntu.tar

在導入文件時,請耐心等待,因為導入的過程需要一些時間。

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

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

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

例如:

wsl --distribution Ubuntu_New

若要刪除我們通過導入Linux歸檔文件而得到的這個新的Linux子系統,我們可以在命令提示符或者PowerShell中執行這條命令:

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

例如:

wsl.exe --unregister Ubuntu_New

七、總結

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

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT之家 的精彩文章:

鐵粉帶「人生第一台諾基亞」,芬蘭總部打卡
不僅有摺疊手機,摺疊馬桶也來了

TAG:IT之家 |