5

主机系统:Windows Server 2008 32 位
安装:Cygwin

我不知道这个问题是什么时候开始的,但是我的一个 Rails gem 使用该命令which来确定系统安装的可执行文件的位置。在我的情况下,它返回/cygdrive/c/Windows/System32/pngcrush- 并且文件无法访问。

在 cygwin 终端和 Windows cmd 中,我得到以下信息:

ls -la /cygdrive/c=No such file or directory

mount=

C:/cygwin/bin on /usr/bin type ntfs (binary,auto)
C:/cygwin/lib on /usr/lib type ntfs (binary,auto)
C:/cygwin on / type ntfs (binary,auto)
B: on /cygdrive/b type smbfs (binary,posix=0,user,noumount,auto
C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto)

cd /在 Windows 终端中运行让我C:\

cd /cygdrive=The system cannot find the path specified

进一步编辑:

我可以使用/c例如访问驱动器,但不能访问返回的驱动/cygdrive/cwhich

4

2 回答 2

5

我在 superuser.com 上找到了答案;移动C:\cygwin\bin到 PATH 变量的前面解决了这个问题。

于 2014-09-03T17:23:01.560 回答
3

对我来说,这个修复是必要的,但还不够;还需要一个修复。我在运行 Bourne shell 脚本时遇到错误,该脚本引用了 localFS 上的其他文件。所有路径都已签出。直到我使用 Sys Internals procmon 进行故障排除时,我才注意到路径末尾有一个额外的字符没有解决。在 Notepad++ 中使用查看/显示符号/显示所有字符查看 shell 脚本显示 Windows 样式 [CR][LF] 行结束,而不是 Unix [LF]。Cygwin 的 sh.exe 在路径末尾包含 [CR],导致找不到文件。我应用了 cygwin 的 d2u 来转换行尾,问题得到了解决。

于 2016-01-07T15:05:23.130 回答