X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:reply-to:subject:to:references:from:message-id :date:mime-version:in-reply-to:content-type :content-transfer-encoding; q=dns; s=default; b=izARrUskSzZ+1CAd 9tW2qNAxKHA5VVl8BxuU9DwvCDS5+8siMbjDmblmxnAjhZ2ezuFFQhUoqR8K7Q+u i2gxKXagPmfDaT1+PqwvBJMFj0KBLmhEB230y7RpE2ADJuUAIcWedHClRrun6HKj 8MadRj7SbwdLCdpkuhofobZz/pA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:reply-to:subject:to:references:from:message-id :date:mime-version:in-reply-to:content-type :content-transfer-encoding; s=default; bh=JE4tbAG40oa9+g5x6OKTRI tAJ/M=; b=pzODDkUUd5AmnXUOwCQ6W34roTV9zuONkNRrrcSDvxDIFSatJ12qm6 bqO7uI7RC30wBg1kHXGKOtfeWDlF0bn6ypZxBK1uXnXHYNS5YXnFKqWxnZjUZcm6 NVKFwLZrbUQuQ5hlC8QZ4HGw24jDzDGfDNlG8XHnS6Uy/uUwWmzaM= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: 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 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=1.4 required=5.0 tests=BAYES_00,BODY_8BITS,GARBLED_BODY,RCVD_IN_DNSWL_LOW,TIME_LIMIT_EXCEEDED autolearn=unavailable version=3.3.2 spammy=h_onootolympuscojp, sk:h_onoo, D*olympus.co.jp, U*h_ono X-HELO: smtp-out-so.shaw.ca Reply-To: Brian DOT Inglis AT SystematicSw DOT ab DOT ca Subject: Re: cmd.exe and file name conversion from comman line argument To: cygwin AT cygwin DOT com References: From: Brian Inglis Openpgp: preference=signencrypt Message-ID: <950baa09-f613-334e-7f27-b0cad8ba9d14@SystematicSw.ab.ca> Date: Thu, 26 Jul 2018 23:24:00 -0600 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-IsSubscribed: yes Note-from-DJ: This may be spam On 2018-07-26 18:56, h_ono AT ot DOT olympus DOT co DOT jp wrote: > There is strange behavior when naming a file from command line argument in > cmd.exe console, using touch or mv. > I use: > touch (GNU coreutils) 8.26 > Packaged by Cygwin (8.26-2) > cygwin1.dll version 2.10.0 > in cmd.exe, doing >> touch aaa > and >> touch 'aaa' > give same file name aaa. >> ls > aaa > but, when I use Japanese characters as file name, it gives different file > names with and without the quote. >> env LANG=ja_JP.UTF-8 touch あああ > gives >> env LANG=ja_JP.UTF-8 ls > あああ > but, >> env LANG=ja_JP.UTF-8 touch 'あああ' > gives file name with quote not stripped. >> env LANG=ja_JP.UTF-8 ls > 'あああ' > If called from mintty + bash, > $ env LANG=ja_JP.UTF-8 touch 'あああ' > gives > $ env LANG=ja_JP.UTF-8 ls > あああ > The problem is when I create a file containing spaces in its name. > Creating a file in cmd.exe like: >> env LANG=ja_JP.UTF-8 touch 'ああ あ' > gives >> env LANG=ja_JP.UTF-8 ls > "'ああ あ'" > (which is a file named 'ああ あ', not ああ あ) > It seems, there is no way to create a file containing a space in its name, > like > ああ あ > with commands such as touch or mv. > Is it a normal behavior, or a bug? > Is there any way to create a file containing Japanese characters and spaces > in its name without quote added? > FYI, With old cygwin (cygwin1.dll version 1.5.25), there were not such > problem. Even from cmd.exe, >> touch 'ああ あ' > gave a file named 'ああ あ' (without the quote in real.) Under a Unix shell, both double quote " and single quote/apostrophe ' are quoting metacharacters, as is backquote/grave `, but any character may be used in a file name by prefixing with the escape character \. Under Windows cmd only double quote " is a quoting metacharacter; path spec delimiters : \ /, wild card characters * ?, and redirection characters | < > are also not allowed in file names. So to create a Windows file name with a space from cmd, use only double quotes " around the name. Under Cygwin, any file name characters disallowed by Windows are mapped into Unicode private use area characters, but converted back on display, so under Windows programs those files' long names will display characters without assigned glyphs. Note that in ls, nongraphic characters in a file name entry e.g. space, causes that file name entry to be displayed single quoted 'a b'; specifying ls -N|--literal|--quoting-style=literal omits the single quotes, but nongraphic characters are displayed on terminals as question marks ?, unless --show-control-chars is also specified. Run "info ls 'Formatting the file names'" to see full explanations. -- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada -- 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