This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Why does ls command sometimes case sensitively misbehave?


>>>On Thu, 15 Aug 2002, Geoffrey Scheller wrote:
>>>
>>>> Why is ls doing this?  Other commands, like vi, also show
>>>> this behavior:
>>>>
>>>>     $ touch foo
>>>>
>>>>     $ ls
>>>>     foo
>>>>
>>>>     $ ls foo
>>>>     foo
>>>>
>>>>     $ ls FoO
>>>>     FoO
>>>>
>>>>     $ ls fo*
>>>>     foo
>>>>
>>>>     $ ls Fo*
>>>>     ls: Fo*: No such file or directory
>>>>
>>>> $ bash --version
>>>> GNU bash, version 2.05b.0(2)-release (i686-pc-cygwin)
>>>> Copyright (C) 2002 Free Software Foundation, Inc.
>>>>
>>>> Cygwin DLL version 1.3.12-2
>>>>
>>>> I run Cygwin on Windows XP Professional.
>>>>
>>>> Thanks,
>>>> Geoffrey
>>>
>>>What you're seeing is the behavior of the shell's filename globbing, not
>>>of ls or vi.  What is the value of your CYGWIN environment variable?
Does
>>>it contain "check_case:<smth>"?  Does it contain "glob" or "noglob"
>>>(although that, IIRC, is only for command shell windows)?  What are the
>>>options of bash itself (`set | grep SHELLOPTS`)?
>>>    Igor
>>
>> $ shopt nocaseglob
>> nocaseglob      off
>>
>> At first that is what I thought, but
>>
>>     $ ls
>>     foo
>>
>>     $ ls 'Foo'
>>     Foo
>>
>> I think shell globbing is OK.
>>
>>     $ echo 'FoO' fo* FoO*
>>     FoO foo FoO*
>>
>> Problem still there whether or not I have turned on case sensitive
globbing.
>>     $ shopt -s nocaseglob
>>
>>     $ echo 'FoO' fo* FoO*
>>     FoO foo foo
>>
>>     $ ls FoO
>>     FoO
>>
>> I think it is a little bit subtler.
>>
>> Geoffrey
>
>Did you try it under other shells (sh, ksh, tcsh)?  Did you try it under
>the command prompt?  And what is the value of your CYGWIN environment
>variable?  I think you might have a "check_case:adjust" in there...
>	Igor

    $ set | grep SHELLOPTS
    SHELLOPTS=braceexpand:hashall:histexpand:interactive-comments:monito

Also, CYGWIN environment variable not defined (Sorry I missed this on
previous thread).
    $env | grep CYGWIN

Same behavior under sh and tcsh.  Don't have ash or ksh installed.  Also
same behavior when under command.com:

    $ C:\CYGWIN\HOME\GEOFFREY\TEST>\cygwin\bin\ls FoO
    FoO

Actually dir gets the name right.  (First time I ever saw dir do something
better than ls)

    C:\cygwin\home\Geoffrey\Test>dir FoO
    Volume in drive C has no label
    Volume Serial Number is 3C08-4BE4

    Directory of C:\cygwin\home\Geoffrey\Test

    08/15/2002  06:35 PM                 0 foo
               1 File(s)              0 bytes
               0 Dir(s)   4,451,311,616 bytes free

This is not a show stopper, but is irksome if I have a C and C++ by the same
name like bar.c and bar.C.  Thanks for your help.

What is the behavior on other peoples Cygwin systems?

Geoffrey





--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]