Messages in this thread |  | | From | Albert Cahalan <> | Subject | filenames | Date | Tue, 7 May 1996 10:14:52 -0400 (EDT) |
| |
> Justin Dossey <dossey@flex.net> writes: > On Fri, 3 May 1996, Mark Lehrer wrote: > > > of course, the best thing would be to finally have a standard > > non-case-sensitive file system on unix. preservation of case > > is important, but being case-sensitive when looking up a file > > is a serious time waster. > > Oh, I disagree. Having the fs be sensitive (to the fault you describe) > to cases gives me double the filename possibilities. Additionally, > if there are 3 files in a directory that begin with the letter "M," > and the filesystem is not case sensitive in that way, example: > > Makefile > memlook.c > makelib.sh > > I can just type M<tab> and get the Makefile right now. The situation you > describe makes that impossible. If you don't use filename completion or > wildcards, then yes, you're wasting time--just don't blame it on the > system. Capitals exist for a reason in Linux.
That is not true. Nobody said to fold case like DOS would. The suggestion was that filename lookup would be case insensitive. If you type M<tab> the shell gives you the Makefile, but if you run 'cat MemLook.c' you will get memlook.c and 'cat makefile' gets you the Makefile.
Although Win95, WinNT, OS/2 and such do not allow both 'Makefile' and 'makefile' (by default!), there is no reason why it would not work. To look up a file, the kernel first does a case-sensitive lookup. If that fails, it folds case and tries again. I think this would be OK for POSIX even, because what you get is 'POSIX names and a great number of aliases for each one'. If you never type the wrong filename in by mistake you can not even tell that lookups can ignore case.
How about this?
case=posix # pure case sensitive case=single # case preserving, 'NAME' and 'Name' can not coexist case=multi # try poxix lookup, on failure fold case and retry lookup
Then add characterset restrictions:
chars=0123 # ASCII (first 4 groups of 32 chars) chars=123567 # Printable ISO characters - Latin1, Latin2... chars=01234567 # Anything goes. User can put ^S in filename :-) chars=123456 # Printable 1 and 2 byte utf-8 characters chars=123,nt # Only the printable ASCII characters WinNT allows!
Note that the last idea would be great for fileservers that serve clients with foreign operating systems. Does anyone else want to keep people from putting ^M^S or ^[30m into /tmp? The sysadm should be able to prevent crazy (=dangerous) filenames.
|  |