File 如何访问从Windows传输到WSL-2 Ubuntu的文件?

File 如何访问从Windows传输到WSL-2 Ubuntu的文件?,file,windows-subsystem-for-linux,tar,file-transfer,wsl-2,File,Windows Subsystem For Linux,Tar,File Transfer,Wsl 2,我的Windows计算机上安装了Linux子系统。我通过查找子系统的位置并将文件拖到上面,传输了一个我想要访问的tar.gz文件。但当我运行命令时: tar -zxvf file_name.tar.gz 我得到一个错误: tar (child): vmd-1.9.4a51.bin.LINUXAMD64-CUDA102-OptiX650-OSPRay185.opengl.tar.gz: Cannot open: Permission denied tar (child): Error is no

我的Windows计算机上安装了Linux子系统。我通过查找子系统的位置并将文件拖到上面,传输了一个我想要访问的tar.gz文件。但当我运行命令时:

tar -zxvf file_name.tar.gz
我得到一个错误:

tar (child): vmd-1.9.4a51.bin.LINUXAMD64-CUDA102-OptiX650-OSPRay185.opengl.tar.gz: Cannot open: Permission denied
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
我假设权限被拒绝与从Windows传输有关,因为我也无法访问通过Windows创建的目录。那么,我是否需要更改某些内容才能访问这些文件

(顺便说一句,我知道除了从Windows传输之外,还有其他获取tar.gz文件的方法,但我也需要为其他文件夹这样做,我只在相关的情况下包含文件类型。)


编辑:您不应该试图将文件拖过。请参阅下面的答案。

对于初学者来说,这属于on,因为它不直接处理编程问题。但既然你已经在这里提供了一个可能有点危险的答案(甚至在你的问题中),我不想让其他人在无意中发现这个答案

如果在该链接中使用了第一个方法,则使用的是WSL1实例,而不是WSL2。只有WSL1以这种方式使文件系统可用。这是一个:

对于Windows上的WSL,有一条严格的规则:

在任何情况下,都不要使用Windows应用程序、工具、脚本、控制台等访问、创建和/或修改
%LOCALAPPDATA%
文件夹中的Linux文件

使用某些Windows工具打开文件可能会读取并锁定打开的文件和/或文件夹,从而阻止更新文件内容和/或元数据,从而导致文件/文件夹损坏

我猜您可能已经完成了WSL2的安装过程,但是您在设置
wsl之前安装了发行版--设置默认版本2
或类似的内容

正如您在上面的Microsoft链接中所看到的,现在有了一种在Windows和WSL之间传输和编辑文件的安全方法--
\\WSL$\
tmpfs挂载。请注意,作为存储在内存中的tmpfs挂载,它实际上更适合通过网络传输文件。当您重新启动或关闭WSL时,它们将消失


但是,即使您在那篇文章中使用了第二种方法(
/mnt/c
),也可能会遇到权限问题。如果您这样做,解决方案应该是按照我的描述,使用uid/gid重新安装C:驱动器。

感谢您向我展示了正确的论坛,并做出了回应,这样其他人就不会尝试我所做的。我已经删除了我的答案和以这种方式访问子系统的具体参考。我现在就尝试你的解决方案!