我目前正在使用来自 Microsoft Store 的 Windows 版 Ubuntu。
为了尝试一些 Python 脚本,我将它们复制并粘贴到我可以通过 Ubuntu 会话访问的文档文件夹中:
C:\Users\[MyUsername]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\[MyUsername]
但是当我启动脚本时,它返回"PermissionError: [Errno 13] Permission denied: '[folderName]"
。有没有办法将文件和文件夹从 Windows 会话复制/粘贴到 Ubuntu 文件夹,而不必对所有文件运行 chmod?
谢谢你的时间
答案1
您不应该手动将数据复制到 WSL 安装中从 Windows- 执行此操作时会出现此权限错误。相反,您应该从 Windows 复制到 WSL在 WSL 环境中反而。
Windows C 驱动器位于/mnt/c
WSL 内。如果脚本位于,C:\Users\username\My Documents\Python\
那么您可以在 WSL 内执行以下操作将脚本复制到 Ubuntu 环境中:
cp /mnt/c/Users/username/My\ Documents/Python/*.py ~
这将复制数据并保留权限,以便它在 Linux 的 Windows 子系统中正常工作。这通常也为您节省了时间chmod
。
答案2
我认为这个答案需要更新。
WSL 之前不允许你这样做,但现在可以这样做本指南
您可以简单地在这些 Linux 目录之一内移动或复制/粘贴文件,或者通过 cmd 或 bash shell 移动或复制/粘贴文件。
答案3
我想使用 Ubuntu WSL 命令提示符将文件从 Windows 下载文件夹移动到 Ubuntu WSL 工作目录,因为我从电子邮件中下载了一些文件,但是当我使用 /mnt/c 方法时它拒绝访问。如果使用 Windows GUI 强制手动复制文件,文件就会损坏。所以我所做的是使用我的 Ubuntu WSL 命令提示符安装了 Firefox。使用 Firefox 打开电子邮件(使用提示符当然)并下载文件,然后文件进入我的 Ubuntu WSL 工作目录中的下载文件夹。我得到了文件,并且读取文件的程序也是使用 Ubuntu WSL 安装的,所以它对我来说是有效的。我不确定文件阅读器(如果没有使用 Ubuntu WSL 提示符安装)是否会为您读取文件,因为据我所知,Windows 不喜欢保留它提供的 Ubuntu WSL 扩展的链接。但是,如果有帮助的话,只需将文件通过电子邮件发送给自己,然后使用 Firefox 下载它们,您就可以拥有它们了。
答案4
解决方案是在 WSL Ubuntu 实例中设置一个 SSH 服务器,然后使用 FileZilla 或 WinSCP 等 GUI 程序从 Windows 连接到它。
如何通过 SFTP 从 Windows 连接到 WSL 中的 Ubuntu?