CP and Ln can't parse windows path ending in wildcard

Gary Johnson garyjohn@spocom.com
Sat Oct 20 21:36:00 GMT 2012


On 2012-10-20, Lawrence Mayer wrote:
> CP and Ln can't parse windows path ending in wildcard
> 
> e.g.
> 
> ln WINDOWS PATH\* DIRECTORY (3rd form)
> ln -t DIRECTORY WINDOWS PATH\*  (4th form)
> cp -l WINDOWS PATH\* DIRECTORY
> 
> all fail returning error message
> 
> 'cannot stat `WINDOWS PATH\\*': No such file or directory'
> 
> Workaround:
> 
> ln WINDOWS PATH/* DIRECTORY
> ln -t DIRECTORY WINDOWS PATH/*
> cp -l WINDOWS PATH/* DIRECTORY
> 
> all appear to work: note forward rather than backward slashes just
> before wildcard.
> 
> 
> I am running cygwin 1.7.17-1 and coreutils 8.15-1, calling above
> commands from cmd.exe 5.2.3790.3959 on Windows Server 2003 sp2
> x32.

In Unix, applications generally don't parse paths, the shell does.
The shell then passes the expanded paths to the applications.

In most if not all Unix shells including bash, a backslash quotes or
removes special meaning from the following character.  If you type
PATH\* as a command argument at the bash prompt, the shell will see
that as PATH followed by a literal * and will pass the string PATH*
to the application.

Cygwin is intended to provide a Linux-like environment.  Linux
doesn't use backslashes as path separators, so you shouldn't expect
a backslash-separated path to work under Cygwin.  If you need to
pass a Windows path to a Cygwin program, use cygpath.

Regards,
Gary


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list