Interesting. Maybe codepage-related issues, then. Sorry, I'm out of my depth now, I'll leave it to someone else to diagnose further.
On Sun, 22 Mar 2020 at 19:54, Jay Libove <lib...@felines.org> wrote: > > Good suggestion, deleting files one by one. It's not just one file, but it > does seem to have something to do with some file name patterns. > I think I've got it. It's accented characters. > I live in Spain. Spanish has accented characters such as "Asociación". > When I remove all files containing any accented character in their name, the > problem goes away. > So the theory now is that the Cygwin argv-processing code has a problem with > áccented charàcters ... > -Jay > > -----Original Message----- > From: Paul Moore <p.f.mo...@gmail.com> > Sent: Sunday, 22 March 2020 20:42 > To: Jay Libove <lib...@felines.org> > Cc: cygwin@cygwin.com > Subject: Re: shell expansion produces e.g. "ls: cannot access '*.pdf': No > such file or directory" in Windows CMD shell, but works okay in bash > > Have you tried deleting files one by one, to see if the issue is related to a > single file (sorry if this is an obvious suggestion that you've already > tried). > > In Cygwin bash, it's the shell that glob-expands wildcards before calling > your program (e.g. ls), and in find, it's the find code that does the glob > matching. But when running Cygwin utilities from a Windows shell, it's the > Cygwin argv-processing code linked into the executable that does the > glob-expansion. So it's reasonable to me that you should see the issue only > with CMD, and not with bash or find. But that only confirms what bit of code > is involved - not what the actual problem is :-( > > I don't actually know much about how the cygwin glob code actually works (my > main involvement with it has been to confirm that it doesn't suit my specific > needs, and to work out a way to bypass it...) so I can only offer fairly > basic suggestions, I'm afraid... > > Paul > > On Sun, 22 Mar 2020 at 19:27, Jay Libove <lib...@felines.org> wrote: > > > > Thanks Paul, both for your initial reply, and your follow-up. > > > > In this case it's not a matter case sensitivity. > > I've verified that, in one of the example cases, there are both *.pdf and > > *.PDF files in the subject directory. > > Both 'ls *.pdf' and 'ls *.PDF' produce the "ls: cannot access '*.whatever': > > No such file or directory" error. > > > > (Nor, to the other respondent's question, as I pointed out in my original > > post, is it ACLs, as I did check CACLS before posting). > > > > I also tried copying (using Windows CMD "COPY") *.pdf (so being under > > Windows, not Cygwin, it matches all cases) from a subject directory to a > > new test directory. > > In the resulting copy in the new test directory, the Cygwin shell expansion > > problem persists. > > > > Here's an interesting twist: > > C:> cd c:\bin\cygwin64\bin > > C:> ln gnufind.exe find.exe # I do this to allow me to differentiate > > between Windows' built-in very limited FIND command, and GNU/Cygwin's far > > superior find command. > > C:> cd \my\test\directory > > C:> gnufind . -name *.pdf -print > > [ successfully returns all *.pdf {lower case only} files in the > > subject directory ] C:> gnufind . -name *.PDF -print [ successfully > > returns all *.pdf {upper case only} files in the subject directory ] > > > > I'm pretty sure that Cygwin 'find' does NOT try to emulate shell globbing > > the way 'ls' does, so it makes sense that this works, and it supports the > > theory that something weird is going on between how Cygwin does shell > > expansion when under Windows CMD vs. when fully within the Cygwin > > environment (under bash where of course bash is doing the shell expansion, > > and ls or other Cygwin commands don't have to). > > > > Does any of this help pinpoint the problem further? > > > > thanks again, > > -Jay > > > > -----Original Message----- > > From: Paul Moore <p.f.mo...@gmail.com> > > Sent: Sunday, 22 March 2020 20:09 > > To: Jay Libove <lib...@felines.org> > > Cc: cygwin@cygwin.com > > Subject: Re: shell expansion produces e.g. "ls: cannot access '*.pdf': > > No such file or directory" in Windows CMD shell, but works okay in > > bash > > > > Is this because cygwin globbing is (by default) case sensitive? You could > > set the CYGWIN environment variable to "glob:ignorecase" to get > > case-insensitive behaviour. > > > > Paul > > > > On Sun, 22 Mar 2020 at 17:52, Jay Libove via Cygwin <cygwin@cygwin.com> > > wrote: > > > > > > I've never seen this before. > > > In a Windows CMD shell, Cygwin shell expansion, for example: > > > ls *.pdf > > > > > > returns: > > > ls: cannot access '*.PDF': No such file or directory (Indeed, any > > > Cygwin shell expansion, when executed from within Windows CMD, > > > produces this error. See below) > > > > > > ls *someotherwildcard* (that matches the same .pdf files) DOES return the > > > expected file list. > > > > > > Example: > > > > > > C:> DIR *.pdf > > > Volume in drive C is C > > > Volume Serial Number is 8674-712A > > > > > > Directory of C:\Temp > > > > > > 22/03/2020 18:30 1.675.954 test.pdf > > > XX/XX/XXXX XX:XX {Any many other .pdf files} > > > > > > Yet: > > > > > > C:> ls *.pdf > > > ls: cannot access '*.pdf': No such file or directory > > > > > > And: > > > C:> bash > > > user@hostname /cygdrive/C/Temp/test > > > $ ls *.pdf > > > A.pdf > > > B.pdf > > > {etc} > > > > > > And, not ALL of the *.pdf files in the particular directory where I've > > > encountered this trigger the problem... > > > > > > C:> ls N*.pdf > > > N.pdf > > > > > > C:> ls A*.pdf > > > ls: cannot access 'A*.pdf': No such file or directory > > > > > > Nor do all directories containing .pdf files produce this. Of the many > > > thousands of files and directories that I have, only some produce this > > > problem. > > > In others, ls *.pdf works perfectly in Windows CMD. > > > > > > I've looked at the Windows ATTRIB and CACLS of the files in directories > > > where this problem occurs. > > > They're all the same. That is, uniform across all files and directories. > > > Nothing interesting. > > > > > > It's not just 'ls': > > > > > > C:> cat *.pdf > > > cat: '*.pdf': No such file or directory > > > > > > So, it appears to be Cygwin shell expansion, when executed under Windows > > > CMD, which is provoking this strange behavior. > > > Any ideas what could be causing this, and how to solve it? > > > > > > many thanks, > > > Jay > > > > > > -- > > > Problem reports: https://cygwin.com/problems.html > > > FAQ: https://cygwin.com/faq/ > > > Documentation: https://cygwin.com/docs.html > > > Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple