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

我已经启用了开发人员模式并安装了 Bash on Ubuntu on Windows

我的主目录可以在 %localappdata%\Lxss\home\<ubuntu.username>\下找到,我已经创建了一个子目录称为图片,使完整的路径应该

窗户: C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures

/home/<ubuntu.username>/Pictures

如果我使用命令 touch hello.txt从 bash 创建一个文件,我可以在 Windows UI 中自由地看到这个文件并将其复制到我的桌面上。但是,如果我从 windows UI 创建一个新的文本文件并将其保存在 C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures中,即使我重新启动 bash 或 windows,在执行 ls -l时该文件也不可见。

为什么 bash 不能在自己的主目录中查看从 Windows 端创建的文件?

EDIT 使用 /mnt/c不是一个解决方案,我试图理解 为什么,它看不到这些文件,如果有一个补救措施,使它能够看到 UI 创建的文件,而不是试图使用终端复制粘贴或移动文件。

220805 次浏览

您应该能够访问 /mnt目录下的 Windows 系统。例如,在 bash 内部,使用以下命令访问图片目录:

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

希望这个能帮上忙!

您只能从 在 WSL 内部访问 Linux 文件系统(位于 lxss 文件夹中的文件系统) ; 不要在 Windows 中创建/修改 lxss 文件夹中的任何文件——这是危险的,WSL 不会看到这些文件。

但是,文件可以在 WSL 和 Windows 之间共享; 将文件放在 lxss 文件夹之外。您可以通过 drvFS (/mnt)访问它们,比如 WSL 中的 /mnt/c/Users/yourusername/files。这些文件在 WSL 和 Windows 之间保持同步。

有关详情和原因,请参阅: Https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/