Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文件从Windows复制到Linux的Windows子系统(WSL)_Linux_Windows_Bash_Windows 10_Windows Subsystem For Linux - Fatal编程技术网

将文件从Windows复制到Linux的Windows子系统(WSL)

将文件从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中自由查看该文件并将其复制到我

我已经启用了开发者模式,并在Windows的Ubuntu上安装了
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协议。