2017-03-03 6300 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/)。 –

相关问题