Cygwin有cygpath
$echo $(cygpath -pw "/cygdrive/c/users/bob/test")
$C:\users\bob\test如何在Windows上的Bash上实现相同的功能?
发布于 2022-12-01 08:18:16
来自EJK的最初接受的答案很好,但已经过时了--要获得路径(因为很多年),只需使用wslpath -w,它将为从窗口侧挂载的每个目录返回与cygpath相同的窗口路径,并为只有WSL侧可用的所有内容返回UNC路径:
$ wslpath -w ~
\\wsl.localhost\Debian\home\bob
$ wslpath -w /mnt/c/users/bob/test
C:\users\bob\test相反,请删除-w并使用单引号:
$ wslpath -w '\\wsl.localhost\Debian\home\bob'
/home/bob
$ wslpath 'C:\users\bob\test'
/mnt/c/users/bob/test发布于 2016-12-07 01:28:32
Windows驱动器位于/mnt目录下,即c:/位于/mnt/c,d:/位于/mnt/d
因此,您可以使用以下函数(将函数放入.bashrc文件中)
function windir() {
pwd | sed -E 's+^/mnt/(.{1})+\1:+' | sed 's+:$+:/+1'
}第一个sed命令将"/mnt/c“转换为"c:”(或d:或任何驱动器号)。第二个sed命令处理根目录的特殊情况。我相信有更优雅的方法来做,但这似乎是可行的。
https://stackoverflow.com/questions/41007781
复制相似问题