Windows 子系统 (Linux) 上的主目录是什么?

Windows 子系统 (Linux) 上的主目录是什么?

当我bash在 Windows Subsystem for Linux 上启动时,它会将我带到目录

/mnt/c/Users/<username>

当我进入此目录时,我使用 Windows 文件资源管理器可以看到ls目录Desktop、等。由于这是程序启动的位置,我预计这是我的主目录,但是当我输入或时,系统会将我带到DocumentsC:\Users\<username>bashcdcd ~

/home/<username>

其中包含我的.bashrc.profile等文件,我期望在 Linux 机器的主目录中找到它们。此外,从cd ../..这里进入,我可以看到目录binetc等,这在 Linux 机器上也是预期的。

对于这一切我有两个问题:

  1. 到底/mnt/c/Users/<username>与什么相比C:\Users\<username>? 看起来它们是一样的---那么是什么呢/mnt/c/
  2. 我如何使用 Windows 文件资源管理器查看文件/home/<username>?其实我并不想这么做——我只是想了解 Windows 如何组织这个 Linux 子系统。

答案1

在最新版本 [2020] 中,可以通过以下方式访问文件系统:

# \\wsl$\<Distribution>:

\\wsl$\Ubuntu

此前,截至 2018 年,当前路径与您从 Microsoft Store 安装的发行版有关,而不是一个全局路径;对于 Ubuntu,它位于:

%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

例如,对于 Debian 来说,该文件将是 ext4 虚拟磁盘的文件:

%LOCALAPPDATA%\Packages\YourDistroName\LocalState, you can see a file named ext4.vhdx

其他发行版应该(有待确认)位于其各自文件夹下的类似位置:

%LOCALAPPDATA%\Packages\

答案2

在 Bash 中,要查看 Windows 文件资源管理器中的当前目录,只需输入:

explorer.exe .

不要漏掉“。”。

这将在当前文件夹中打开 Windows 资源管理器,您可以看到所有内容与 Windows 系统其余部分的关系。

答案3

  1. /mnt/c与 完全相同C:\。这只是从 WSL 获取它的语法。
  2. 在看C:\Users\<username>\AppData\Local\Lxss\rootfs

答案4

使用当前的 Windows 10 Insider(快速环:Windows 10 内部版本 19025.1),您可以将发行版安装为网络驱动器。

WSL 可以通过 访问wsl$,路径是您的发行版名称 ( wsl -l -q)。

例如net use Z: \\wsl$\Debian /PERSISTENT:YES

相关内容