当我bash
在 Windows Subsystem for Linux 上启动时,它会将我带到目录
/mnt/c/Users/<username>
当我进入此目录时,我使用 Windows 文件资源管理器可以看到ls
目录Desktop
、等。由于这是程序启动的位置,我预计这是我的主目录,但是当我输入或时,系统会将我带到Documents
C:\Users\<username>
bash
cd
cd ~
/home/<username>
其中包含我的.bashrc
、.profile
等文件,我期望在 Linux 机器的主目录中找到它们。此外,从cd ../..
这里进入,我可以看到目录bin
、etc
等,这在 Linux 机器上也是预期的。
对于这一切我有两个问题:
- 到底
/mnt/c/Users/<username>
与什么相比C:\Users\<username>
? 看起来它们是一样的---那么是什么呢/mnt/c/
? - 我如何使用 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
/mnt/c
与 完全相同C:\
。这只是从 WSL 获取它的语法。- 在看
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