|
|
Subscribe / Log in / New account

Filesystems and case-insensitivity

Filesystems and case-insensitivity

Posted Nov 30, 2018 17:38 UTC (Fri) by ScottMinster (subscriber, #67541)
Parent article: Filesystems and case-insensitivity

What is the real use case of a case insensitive file system? I understand the interoperability use case of working with case insensitive file systems or Samba clients. And if the answer is really just "other systems do it and they can't change because it would break too much", that makes sense.

But leaving that aside for the moment, what is the gain? I've been working on case sensitive Linux file systems for many years, and never felt the need to have "level1.MAP" really load "level1.map". I've occasionally had to deal with writing software that expects extensions in lower case and been given files with those extensions in upper case, and that is annoying, but it's more due to laziness on the file creator's part of not using the standard extension case.

The only two justifications I can come up with for wanting case insensitivity is to avoid problems with unexpectedly cased files and to avoid user confusion (i.e., "Document1.doc" and "document1.doc" being different files). Those are worthy goals, but it seems like there are so many tricky problems with case insensitivity that it is hardly worth the trouble. It's relatively easy in English, but as many people point out, there are problems in many other languages.

But even in English, it could cause problems. Can you "mv makefile Makefile" in a case insensitive filesystem, or would you get the error "'makefile' and 'Makefile' are the same file"? Also, as another poster pointed out, globbing in various programs would likely have to change to be consistent.

And once you enable it, you can never really disable it without inevitably breaking programs.

So why do systems like Windows and MacOS do it? Did they underestimate the difficulty and are stuck with that decision?

I could see how it could be useful for things like Samba servers, but given all the complicated edge cases, it doesn't seem like it's a good idea for general use. Though once it's working for Samba, some distribution will likely turn it on everywhere, to try to be more user friendly.


to post comments

Filesystems and case-insensitivity

Posted Nov 30, 2018 18:36 UTC (Fri) by mpr22 (subscriber, #60784) [Link]

Windows has to be case-insensitive because older versions of Windows were case-insensitive because they were compatible with MS-DOS and MS-DOS was case-insensitive.

And MS-DOS was written with the (probably unconscious) assumption that natural-language text was in ASCII, where case-insensitivity is cheap to implement.

Filesystems and case-insensitivity

Posted Dec 7, 2018 11:09 UTC (Fri) by Wol (subscriber, #4433) [Link] (3 responses)

> But leaving that aside for the moment, what is the gain? I've been working on case sensitive Linux file systems for many years, and never felt the need to have "level1.MAP" really load "level1.map".

Because you're a programmer used to thinking in byte strings.

I *still* have problems because users insist on knowing whether email addresses have capital letters or not (they are case-insensitive, for historical reasons, because a lot of the early systems mangled case).

So the short answer is, YOU may not feel the gain, but a lot of other people WILL.

(Along the same lines, I remember being sent a second copy of some newsletter because "some people said they couldn't read the attachment". Ie pretty much all Windows systems, because the sender had somehow lost the extension and those systems didn't recognise the file "newsletter" as a pdf. Of course, my gentoo system didn't give a monkeys :-)

Cheers,
Wol

Filesystems and case-insensitivity

Posted Dec 7, 2018 11:45 UTC (Fri) by gioele (subscriber, #61675) [Link] (2 responses)

> I *still* have problems because users insist on knowing whether email addresses have capital letters or not (they are case-insensitive, for historical reasons, because a lot of the early systems mangled case).

These users are right: the local-part of an email address _is_ case sensitive. Only the domain is case insensitive.

RFC 5321, section 2.4 [1]:

> The local-part of a mailbox MUST BE treated as case sensitive. Therefore, SMTP implementations MUST take care to preserve the case of mailbox local-parts. In particular, for some hosts, the user "smith" is different from the user "Smith". However, exploiting the case sensitivity of mailbox local-parts impedes interoperability and is discouraged. Mailbox domains follow normal DNS rules and are hence not case sensitive.

[1] https://tools.ietf.org/html/rfc5321#section-2.4

Filesystems and case-insensitivity

Posted Dec 7, 2018 16:31 UTC (Fri) by smurf (subscriber, #17840) [Link] (1 responses)

Its cast must be preserved in transit but terminal MTAs are free to treat them as case insensitive. Most do, these days.

Filesystems and case-insensitivity

Posted Dec 8, 2018 23:37 UTC (Sat) by zlynx (guest, #2285) [Link]

Fedora's default Exim configuration did not make it insensitive. I had to add that myself because my server was rejecting a lot of mail, mostly from Gmail users randomly capitalizing things.

> lowercase_local:
> driver = redirect
> data = ${lc:${local_part}}


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds