X-Recipient: archive-cygwin@delorie.com
X-SWARE-Spam-Status: No, hits=-2.0 required=5.0	tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RP_MATCHES_RCVD
X-Spam-Check-By: sourceware.org
Date: Sat, 20 Oct 2012 14:36:22 -0700
From: Gary Johnson <garyjohn@spocom.com>
To: cygwin@cygwin.com
Subject: Re: CP and Ln can't parse windows path ending in wildcard
Message-ID: <20121020213622.GA4226@phoenix>
Mail-Followup-To: cygwin@cygwin.com
References: <20121020190646.15980@gmx.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20121020190646.15980@gmx.com>
User-Agent: Mutt/1.5.20 (2009-06-14)
X-IsSubscribed: yes
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
Precedence: bulk
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie.com@cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.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

