从适用于Linux的Windows子系统中,如何获取指向Windows个性中%UserProfile%
内容的DrvFs路径?我见过Access Windows Environment Variables from within Bash in WSL。它似乎涉及获取一个环境变量,并且需要在%UserProfile%
内对$LXSS_ROOT
内的某些内容进行硬编码(w3wp.exe
)。
答案 0 :(得分:1)
这似乎有效:
win_userprofile="$(cmd.exe /c "<nul set /p=%UserProfile%" 2>/dev/null)"
win_userprofile_drive="${win_userprofile%%:*}:"
userprofile_mount="$(findmnt --noheadings --first-only --output TARGET "$win_userprofile_drive")"
win_userprofile_dir="${win_userprofile#*:}"
userprofile="${userprofile_mount}${win_userprofile_dir//\\//}"
感谢Microsoft的Craig Loewen让我入门。
答案 1 :(得分:1)
幸运的是,由于Windows 10内部版本17063(包括在Windows 10 1803中),在Windows和WSL(WSLENV
)之间共享环境变量的方法更加简单。
要使%USERPROFILE%
在WSL中可访问,请在WSLENV
变量中列出该变量。如果您尚未使用WSLENV
,则只需在Windows中运行一次即可:
setx WSLENV USERPROFILE/up
这将导致将Windows路径转换为Unix格式的WSL shell中的%USERPROFILE%
从Windows访问。如果您不想转换路径,只需省略$USERPROFILE
:
p
更多详细信息:
我在setx WSLENV USERPROFILE/u
函数中使用该变量(从CD到Windows路径)。我在cdw
中定义了它,它在Ubuntu中会自动执行:
~/.bash_aliases