Cygwin cygpath无法将Windows路径转换为Linux路径
我正在尝试在Windows计算机上转换与Linux和Windows之间的文件路径 到windows的unix路径工作正常Cygwin cygpath无法将Windows路径转换为Linux路径,cygwin,cygpath,Cygwin,Cygpath,我正在尝试在Windows计算机上转换与Linux和Windows之间的文件路径 到windows的unix路径工作正常 $ cygpath -w /cygdrive/c/CYGWIN/CYGBuild/build.mak C:\CYGWIN\CYGBuild\build.mak 但是windows到Linux的路径给出了错误的输出。i、 e缺少“/”和cygdrive $ cygpath -u c:\cygwin\cygbuild\build.mak c:cygwincygbuildbuil
$ cygpath -w /cygdrive/c/CYGWIN/CYGBuild/build.mak
C:\CYGWIN\CYGBuild\build.mak
但是windows到Linux的路径给出了错误的输出。i、 e缺少“/”和cygdrive
$ cygpath -u c:\cygwin\cygbuild\build.mak
c:cygwincygbuildbuild.mak
有人面临这个问题吗??分享你的经验
谢谢,我得到了这个问题的答案
cygpath -u 'c:\cygwin\cygbuild\build.mak'
i、 e路径应以单引号给出。据我所知,实际上;在cygwin中使用的路径中需要正斜杠。如果路径中有空格(我猜在本例中是使用反斜杠而不是正斜杠),单引号会有所帮助。否则,反斜杠类似于转义字符,而空格(尽管不是在您的情况下)本身需要转义字符。因此,引用路径有助于消除此类麻烦 以下是帮助我理解这一点的链接:
- opencv(使用cygwin)教程,第4页,其中有一个使用的路径示例,带引号和不带引号,指示何时可能需要它们
- 也是 非常有用;Cygwin的常见问题列表,包括如何处理 空格(或者在本例中,在添加引号的路径中使用反斜杠)
- cygpath的
-m
选项可能是最简单的解决方案。Windows软件通常接受/
以及\
。(可能有一些例外,但我使用的开发工具都很好。)
似乎没有人解释为什么,我们这里有一个解释
Cygpath
将接受斜杠和反斜杠:c:/cygwin/cygbuild/build.mak
c:\cygwin\cygbuild\build.mak。但是,shell将解释反斜杠,因此需要阻止shell解释反斜杠
您可以通过在参数前加反斜杠或引用(单引号)来阻止shell解释反斜杠,方法是:c:\\cygwin\\cygbuild\\build.mak
或'c:\cygwin\cygbuild\build.mak'
在这种情况下,双引号没有帮助。双引号停止在空格上打断参数,但不停止转义(\
)或美元($
)扩展的解释 注意,这不是Linux(也不是WFL)。他们是Gnu。Cygwin使用一个名为Cygwin.dll
的dll来完成Unix内核(如Linux)将要完成的工作。(Gnu+Linux)-Linux+dll=Gnu+dll
$ cygpath -m /cygdrive/c/CYGWIN/CYGBuild/build.mak
C:/Cygwin/CYGBuild/build.mak