X-Recipient: archive-cygwin AT delorie DOT 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 To: cygwin AT cygwin DOT com Subject: Re: CP and Ln can't parse windows path ending in wildcard Message-ID: <20121020213622.GA4226@phoenix> Mail-Followup-To: cygwin AT cygwin DOT com References: <20121020190646 DOT 15980 AT gmx DOT 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 AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT 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