views:

68

answers:

2

I'm having a weird issue with cygwin acting inconsistently between installations, specifically scp. I have c:\cygwin\bin in my Windows PATH in both cases. When I run the following command from a Windows Command Prompt, however, I get very different results between the two installations:

scp /cygdrive/c/something.txt User@server:${HOME}/something.txt

On the one machine it transfers the file just fine, but on the other machine I get an error:

/cygdrive/c/something.txt: No such file or directory

However, if I execute the command this way on the machine that gave me the error, it transfers just fine:

scp /c/something.txt User@server:${HOME}/something.txt

Why the differences? Is there something I need to configure within cygwin to make this work with /cygdrive/c?

UPDATE: Here's something more interesting. If I do ls /c from a Windows command prompt I get what you would expect, as list of everything in C:. However, ls /cygdrive/c says that it doesn't exist. Running those commands from the cygwin bash yields exactly the opposite behavior.

+1  A: 

The correct way to do this is using the mount command:

mount --change-cygdrive-prefix /c

or in your case, restore the default /cygdrive prefix...

Amro
Do you know if this is a default setting added in a newer version of cygwin?
Matt Baker
it actually defaults to `/cygdrive` unless you manually change it (at least that's the way it was the last time I checked). You know there's nothing stopping you from having both (add an entry to /etc/fstab as explained in the documentation)
Amro
Hmm. That's what's weird, this is a clean install of cygwin and I didn't change any of the options.
Matt Baker
A: 

The problem was my PATH precedence. It was

PATH=%PATH%;C:\cygwin\bin

but it needed to be

PATH=C:\cygwin\bin;%PATH%

After fixing the PATH /cygdrive/c resolved as expected.

Matt Baker