This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: CP and Ln can't parse windows path ending in wildcard
- From: Gary Johnson <garyjohn at spocom dot com>
- To: cygwin at cygwin dot com
- Date: Sat, 20 Oct 2012 14:36:22 -0700
- Subject: Re: CP and Ln can't parse windows path ending in wildcard
- References: <20121020190646.15980@gmx.com>
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