Windows(WSL v2)中 $HOME 目录的位置是什么?
即我可以输入什么地址Windows Explorer
来进入$HOME
我的 WSL 安装中的目录。...
我创建了一个测试文件夹,然后尝试在命令提示符中找到它,但它没有出现
答案1
$Home 位置
访问 $home类型:\\wsl.localhost\Ubuntu\home\{username}
在 Windows 资源管理器中
笔记:
- 此答案适用于 WSL2(这是自 Windows 10 版本 2004 以来安装的默认版本)。
Ubuntu
是默认安装的 Linux 版本('发行版'),如果您选择安装不同的'发行版',则需要更改此部分{username}
是您在 WSL 设置中指定的用户,不一定是您的 Windows 用户名- Linux 环境在 Hyper-V 中作为 VM 运行,WSL 中的所有文件实际上都包含在虚拟硬盘(
.vhdx
文件)中,但是 Windows 将文件的内容公开.vhdx
为上面列出的虚拟网络路径。 - 该
.vhdx
文件存储在:%LocalAppData%\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState
致谢
• @DuncG 的回答(用作基础,然后澄清和扩展)
• @Yisroel-tech 的开发博客链接(会推荐给其他新的 WSL 用户)
•@user1686 提供更多信息和情况.vhdx
解释
答案2
使用 WSL2,您可以在虚拟机中工作——整个 Linux 环境是在 Hyper-V 上运行的 VM,其中一个.vhdx
映像存储其 Ext4 格式的磁盘(包括 /home 下的所有文件)。
该图像位于的某个子目录中~\AppData\Local\Packages
,具体取决于您安装的发行版(每个都是一个单独的“应用程序”)。请参阅如何管理 WSL 磁盘空间更多细节。
请注意,虽然您可以在 Windows 中直接附加 .vhdx,但它仍然无法理解 Ext4 文件系统。
对于 WSL1,Linux 文件系统曾是存储在rootfs
目录中的单个文件(位于 AppData 下的同一位置)。但是,这些文件不能直接访问,因为它们具有存储 Linux 特定元数据(例如 Linux 文件权限)的隐藏属性;直接编辑这些文件可能会丢失扩展属性。
答案3
不确定这是否有助于您的情况。在我的 WSL1 实例中,Linux 文件夹列在 Windows 资源管理器的新“Linux”部分中。单击不同的安装实例名称进行探索或尝试使用 UNC 路径的目录,例如:
dir \\wsl.localhost\Ubuntu-20.04\home\youruserid
在资源管理器中,只需找到您想要的文件夹,“复制路径”将提供相同的 UNC 路径,您可以将其粘贴到 Windows 命令提示符中。