我正在运行 Windows XP 和 Cygwin。有没有办法创建某种符号链接,这样,如果非 Cygwin 程序将 /cygdrive/c 作为命令行参数传递,它会在 c:\ 中查找所需的任何文件/目录?
答案1
有一种方法可以在 Windows 上创建符号链接,下载连接点微软的工具,并用它来创建一个符号链接(在 NTFS 上,它们被实现为连接点)。然后创建一个 \cygdrive\c 目录,并从该目录创建一个到 c:\ 的连接点
md \cygdrive\c
junction \cygdrive\c \
现在这可能有效也可能无效,我没有安装 cygwin。它依赖于:
- 程序将 /cygdrive/c 中的正斜杠解释为反斜杠(有些程序可能会这样做)
- 将工作目录设置为具有符号链接的驱动器,因为以 \ 开头的路径是相对于当前驱动器的。
答案2
如果你从 cygwin 的 bash 调用不支持 cygwin 的程序,并将路径作为参数传递,例如
$ windowsProgram.exe "pathArg1" "pathArg2"
然后可以将每个 pathArg 转换为“$(cygpath -w pathArg)”,即说
$ windowsProgram.exe "$(cygpath -w pathArg1)" "$(cygpath -w pathArg2)"
。很丑,但是应该可以工作吧?