将文件从Windows复制到Linux的Windows子系统(WSL)
我已经启用了开发者模式,并在Windows的Ubuntu上安装了将文件从Windows复制到Linux的Windows子系统(WSL),linux,windows,bash,windows-10,windows-subsystem-for-linux,Linux,Windows,Bash,Windows 10,Windows Subsystem For Linux,我已经启用了开发者模式,并在Windows的Ubuntu上安装了Bash 我的主目录可以在%localappdata%\Lxss\home\\\下找到,我已经创建了一个名为Pictures的子目录,这样完整的路径应该是 在windows上:C:\Users\\AppData\Local\lxss\home\\Pictures 在bash上:/home//Pictures 如果我使用命令touch hello.txt从bash创建一个文件,我可以在windows UI中自由查看该文件并将其复制到我
Bash
我的主目录可以在%localappdata%\Lxss\home\\\
下找到,我已经创建了一个名为Pictures的子目录,这样完整的路径应该是
在windows上:C:\Users\\AppData\Local\lxss\home\\Pictures
在bash上:/home//Pictures
如果我使用命令touch hello.txt
从bash创建一个文件,我可以在windows UI中自由查看该文件并将其复制到我的桌面。但是,如果我从windows UI创建一个新的文本文件并将其保存在C:\Users\\AppData\Local\lxss\home\\Pictures
中,即使我重新启动bash或windows,当我执行ls-l
时,该文件也不可见
为什么bash不能在自己的主目录中看到从Windows端创建的文件
编辑使用
/mnt/c
不是一个解决方案,我试图理解为什么它看不到这些文件,以及是否有补救措施,以便它能够看到UI创建的文件,不要试图使用终端复制粘贴或移动文件。您应该能够在/mnt
目录下访问windows系统。例如,在bash内部,使用以下命令可以访问图片目录:
cd /mnt/c/Users/<ubuntu.username>/Pictures
cd/mnt/c/Users//图片
希望这有帮助 只能从WSL内部访问Linux文件系统(位于lxss文件夹中的文件)不要在Windows中的lxss文件夹中创建/修改任何文件-这很危险,WSL将看不到这些文件 文件可以在WSL和Windows之间共享;将文件放在lxss文件夹之外。您可以通过drvFS(
/mnt
)访问它们,例如WSL中的/mnt/c/Users/yourusername/files
。这些文件在WSL和Windows之间保持同步
有关详细信息和原因,请参阅:
我相信你误解了。我的桌面上有一个JPG,我用UI将它复制到bash子系统目录中。我试图理解为什么bash在主目录中看不到这些图片。这是cygwin的基本行为,在不依赖linux命令的情况下拖放或复制粘贴文件。您可能位于错误的文件夹中。linux子系统没有与cygwin相同的设计标准。你不一定期望他们的行为类似。这对我很有效,尽管
ubuntu.username
不是windows所必需的用户名。。至少我不是这样;)我爱你,真有趣!我的猜测——这只是猜测——是Linux子系统跟踪自己的文件,从不查看是否添加了其他文件。这在某种程度上是有道理的,因为否则就很难给出虚拟文件系统UNIX的语义,比如删除文件和区分大小写。我怀疑您会发现,如果您从Bash创建hello.txt
和hello.txt
,当您在Windows中查看时,其中一个文件将使用不同的名称。Stack Overflow是一个用于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。正如@HarryJohnston所设想的那样,名字是不同的。既长又短。但只有在这种情况下,即使是简短的(!)我也会投票结束这个问题,因为它与ask ubuntu社区有关。@jpaugh我知道。但是,这个问题有理由问Ubuntu的情况,而不是离题。另请参阅。其中描述了发生这种行为的原因:文件“翻译”仅在lsxx子系统(linux端)中完成。在linux虚拟机上,我可以使用SFTP传输文件,我如何正确地将文件从窗口传输到linux子系统?这不提供解决方案。@AmbroiseRabier在最新版本的WSL中,请使用SFTP、tar文件或集成的9p协议。