Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cygwin /cygdrive/c no such file or directory

Host system: Windows Server 2008 32-bit
Installed: Cygwin

I don't know when this problem started, but one of my Rails gems uses the command which to determine the location of a system-installed executable. In my circumstance, it returns /cygdrive/c/Windows/System32/pngcrush - and the file is inaccessible.

In both cygwin terminal and Windows cmd I get the following:

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)

Running cd / in Windows terminal brings me to C:\

cd /cygdrive = The system cannot find the path specified

FURTHER EDIT:

I can access the drives using /c for example, but just not /cygdrive/c which is what which returns.

like image 483
SnakeWasTheNameTheyGaveMe Avatar asked Sep 02 '14 13:09

SnakeWasTheNameTheyGaveMe


People also ask

How do I access C drive in Cygwin?

I.e. DOS C: drive can be accessed in Cygwin by /cygdrive/c, D: as /cygdrive/d, etc. To display the contents of the current directory, you can use ls or dir commands.


2 Answers

I found the answer on superuser.com; moving C:\cygwin\bin to the front of the PATH variable fixed the issue.

like image 131
SnakeWasTheNameTheyGaveMe Avatar answered Sep 30 '22 14:09

SnakeWasTheNameTheyGaveMe


This fix was necessary, but not sufficient, for me; one more fix was needed. I was getting the error running Bourne shell scripts which referred to other files on the localFS. All the paths checked out. It wasn't until I used Sys Internals procmon to troubleshoot that I noticed an extra char at the end of the path that wasn't resolving. Viewing the shell script in Notepad++ with View/Show Symbol/Show All Characters revealed Windows style [CR][LF] line ends, not Unix [LF]. Cygwin's sh.exe was including the [CR] on the end of the path, resulting in file not found. I appied cygwin's d2u to convert line ends, and the problem was fixed.

like image 34
osullivj Avatar answered Sep 30 '22 14:09

osullivj