Cygwin / cygdrive / c没有这样的文件或目录

时间:2014-09-02 13:35:37

标签: cygwin mount nosuchfileexception

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

我不知道这个问题何时开始,但我的一个Rails gems使用命令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)

在Windows终端中运行cd /会将我带到C:\

cd /cygdrive = The system cannot find the path specified

进一步编辑:

我可以使用/c来访问这些驱动器,但不是/cygdrive/c which返回的驱动器。

2 个答案:

答案 0 :(得分:3)

我在superuser.com上找到了the answer;将C:\cygwin\bin移动到PATH变量的前面修复了问题。

答案 1 :(得分:2)

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