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