cygpath无法将Windows路径转换为Linux路径

时间:2012-09-27 11:26:53

标签: cygwin cygpath

我试图在Windows机器上将文件路径转换为Linux和Windows。

windows的unix路径工作正常。

$ cygpath -w /cygdrive/c/CYGWIN/CYGBuild/build.mak
C:\CYGWIN\CYGBuild\build.mak

但Linux的Linux路径输出错误。即缺少'/'和cygdrive

$ cygpath -u c:\cygwin\cygbuild\build.mak
c:cygwincygbuildbuild.mak

任何人都遇到过这个问题?分享您的经验。

由于

3 个答案:

答案 0 :(得分:13)

我得到了这个问题的答案。

$ cygpath -u 'c:\cygwin\cygbuild\build.mak'

即路径应以单引号给出。

答案 1 :(得分:2)

实际上据我所知;你需要在cygwin中使用的路径中使用正斜杠。单引号有助于在路径中有空格(我猜这种情况下;使用反斜杠而不是正斜杠)。否则反斜杠就像转义字符,而空格(虽然不是你的情况)本身需要转义字符。所以引用这条道路往往会消除这种麻烦。

这些链接可以帮助我理解这一点:

  • This opencv(使用cygwin)教程,第4页,其中包含使用和不带引号的路径示例,指示何时可能需要它们。
  • 另外this是 很有用; Cygwin常见问题解答列表,包括如何处理 空格(或者在这种情况下,添加引号的路径中的反斜杠会有帮助)。

答案 2 :(得分:0)

cygpath的-m选项可能是最简单的解决方案。 Windows软件通常接受/以及\。 (可能有一些例外情况,但我使用的开发工具一切都很好。)

$ cygpath -m /cygdrive/c/CYGWIN/CYGBuild/build.mak

C:/Cygwin/CYGBuild/build.mak