如何从 WSL 中获取 Windows 用户主目录 (/mnt/c/Users/username) 的路径?

How to get the path to the Windows user's home directory (/mnt/c/Users/username) from within WSL?

我需要从 WSL 中获取 Windows 用户主目录 /mnt/c/Users/username 的路径,它存储在某处吗?

如果没有,username 是否存储在某处?我假设 /mnt/c/Users 部分没有改变。

谢谢!

v使用 cmd.exe 获取它并使用 wslpath 将其解析为 WSL 路径(需要安装了 wslpath 的更新 WSL):

Bash

WIN_HOME_RAW="$(cmd.exe /c "<nul set /p=%UserProfile%" 2>/dev/null)"
WIN_HOME="$(wslpath $WIN_HOME_RAW)"

set WIN_HOME_RAW (cmd.exe /c "<nul set /p=%UserProfile%" 2>/dev/null)
set -gx WIN_HOME (wslpath $WIN_HOME_RAW)

您可以使用 powershell 获取用户配置文件变量并使用内置的 wslpath 转换为 WSL 路径:

WIN_USER_PROFILE="$(wslpath $(powershell.exe -NoProfile -NonInteractive -Command "$Env:UserProfile"))" 

您可以简单地将 wslpathwslvar 一起使用,如下所示:

$ wslpath "$(wslvar USERPROFILE)"

这将 return 是这样的:

/mnt/c/Users/{USERNAME}