【问题标题】:Cygwin /cygdrive/c no such file or directoryCygwin /cygdrive/c 没有这样的文件或目录
【发布时间】:2014-10-26 19:10:48
【问题描述】:

主机系统: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)

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

cd /cygdrive = The system cannot find the path specified

进一步编辑:

例如,我可以使用/c 访问驱动器,但不能使用/cygdrive/c 访问驱动器,这是which 返回的内容。

【问题讨论】:

    标签: cygwin mount nosuchfileexception


    【解决方案1】:

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

    【讨论】:

    • 您尝试过之后重新启动吗?环境必须重新加载。
    • 我做到了。仍然出于某种奇怪的原因,它正在加载 git 附带的逗号。
    • ...您使用的应用程序存在于 C:\cygwin\bin 中?即,C:\cygwin\bin\which 存在?
    【解决方案2】:

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

    【讨论】:

    • 生命安全的伙伴 :)
    猜你喜欢
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多