2017-03-03 6309 views
11

我啓用了開發人員模式並安裝了Bash on Ubuntu on Windows將文件從Windows複製到Ubuntu子系統

我的主目錄可以%localappdata%\Lxss\home\<ubuntu.username>\下找到,我創建了一個叫做畫面,使得完整路徑應該是一個子目錄

在Windows上:C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures

上的bash:/home/<ubuntu.username>/Pictures

如果我使用命令touch hello.txt從bash創建文件,我可以在Windows UI中自由地查看此文件並將其複製到我的桌面。但是,如果我從Windows UI創建一個新的文本文件並將其保存在C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures,即使我重新啓動bash或窗口,當我做ls -l時文件不可見。

爲什麼不能在自己的主目錄中看到從Windows端創建的文件?

編輯使用/mnt/c是不是一個解決方案,我試圖理解爲什麼沒有看到這些文件,如果有救濟到這樣它就能看到UI創建的文件,而比試圖使用終端複製粘貼或移動文件。

+2

有趣!我的猜測 - 它*僅僅是一個猜測 - 是Linux子系統跟蹤自己的文件,並且從未查看是否添加了其他任何文件。這樣做有道理,否則很難爲虛擬文件系統提供UNIX語義,例如刪除文件和區分大小寫。我懷疑你會發現,如果你在Bash中創建'hello.txt'和'HELLO.TXT',那麼當你在Windows中查看它時,其中一個文件將會以不同的名稱。 –

+0

Stack Overflow是編程和開發問題的網站。這個問題似乎與題目無關,因爲它不涉及編程或開發。請參閱幫助中心的[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic)。也許[超級用戶](http://superuser.com/)或[Unix&Linux堆棧交換](http://unix.stackexchange.com/)會是一個更好的地方。另請參閱[我在哪裏發佈有關Dev Ops的問題?](http://meta.stackexchange.com/q/134306) – jww

+0

正如@HarryJohnston所假設的,名稱不同。無論多空都有。但只有在這種情況下,即使是短小的(!) –

回答

7

你應該可以在/mnt目錄下訪問你的windows系統。例如在bash裏面,用這個來到你的圖片目錄:

cd /mnt/c/Users/<ubuntu.username>/Pictures 

希望能幫到你!

+0

我相信你誤會了。我的桌面上有一張JPG,我用UI將它複製到bash子系統目錄中。我想了解爲什麼bash無法在主目錄中看到這些圖片。 這是基本的cygwin行爲,拖放或複製粘貼文件而不依賴於linux命令來完成這項工作。 – JordanGS

+0

您可能位於錯誤的文件夾中。 – pudility

+0

Linux子系統與Cygwin沒有相同的設計標準。你不一定期望他們行爲相似。 –

16

您應該只訪問Linux的文件系統(位於lxss文件夾)中WSL,不要創建/修改Windows中的文件夾lxss任何文件,這是危險的,WSL不會看到這些文件。

如果您希望文件可以在WSL和Windows之間共享,請將該文件放在lsxx文件夾之外。您可以通過WSL中的drvFS(/mnt)(如/mnt/c/Users/youusername/files)訪問它們,並在Windows中對其進行修改。

有關詳情和原因,請參閱: https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

+0

另請參閱[WSL文件系統支持](https://blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support/)。 –

相關問題