如果我想将 Linux 子系统的目录更改为我在 Windows 资源管理器中打开的目录,那么我必须替换\
、删除:
并在前面添加/mnt/
。
我发现该命令wslpath -a 'C:\Windows'
可以做到这一点,但我仍然需要复制粘贴结果来更改目录。所以我试过了,wslpath -a 'C:\Windows' | cd
但没有成功。
编辑:如果能将其作为别名使用就好了,例如cdwin C:\Windows
答案1
这是可以做到的。您可以使用 shell 函数(例如,在您的 中~/.bashrc
)来调用wslpath
和cd
:
cdwin () {
cd "$(wslpath -a "$1")"
}
不过,话虽如此,您还是需要在 Windows 路径周围加上引号。shell 会将反斜杠特殊解释为转义字符,如果您省略引号,则反斜杠可能会被删除。没有办法避免这种情况,因为这是所有 Unix shell 的工作方式。
答案2
抱歉,我无法发表评论,因为我的声誉不高
安眠药@bkk2204 的答案确实是个好主意。
但对于您的代码,您实际上已经非常接近了!
所以我尝试了
wslpath -a 'C:\Windows' | cd
,但没有成功
尝试一下
cd `wslpath -a 'C:\Windows'`
你甚至可以做环境变量
cd `wslpath -u $(wslvar windir)`
或者
cd $(wslpath -u `wslvar windir`)
或者
cd $(wslpath -u $(wslvar windir))
但是要执行 wslvar 你需要安装西弗吉尼亚大学(已在 ubuntu 中预安装)。
Windir 是环境变量的一部分。
打印环境变量列表
powershell.exe "Get-ChildItem Env:"