It's neat that Linux has the ability to do this, but I honestly can't think of a good usecase for this. I think this is more confusing than it is useful
But why though? Do you really want a bunch of file.txt File.txt FILE.txt fIle.txt FiLe.txt FIle.txt flIe.txt… I once had a nasty bug the O in a file name was a 0 and I didn’t notice I can’t imagine the horrors this would cause.
Even more annoying is that it's very cumbersome to change the case of a file once you've created it.
If you accidentally create fIle.txt when you meant File.txt, the rename function does nothing ... and it will keep displaying as fIle.txt. You have to rename it to something else entirely, then rename it back to the original name with the intended case.
Yeah I've been using Linux for a very long time. The amount of time I've spent on the case being incorrect is non-trivial. I've gotten better at not screwing it up throughout the years but the sum of advantages is far outweighed by the sum of debugging time spent.
I'm with windows on this one. Case insensitive is much more ergonomics with the only sacrifice represented by this meme. And a little bit of performance of course. But the ergonomics are worth it imo.
The android build system used that limitation of Windows to prevent android from being built on Windows. They purposely had directories with the same name but different capitalization.
Case-sensitive is easier to implement; it's just a string of bytes. Case-insensitive requires a lot of code to get right, since it has to interpret symbols that make sense to humans. So, something over wondered about:
That's not hard for ASCII, but what about Unicode? Is the precomposed ç treated the same lexically and by the API as Latin capital letter c + combining cedilla? Does the OS normalize all of one form to the other? Is ß the same as SS? What about alternate glyphs, like half width or full width forms? Is it i18n-sensitive, so that, say, E and É are treated the same in French localization? Are Katakana and Hiragana characters equivalent?
I dunno, as a long-time Unix and Linux user, I haven't tried these things, but it seems odd to me to build a set of character equivalences into the filesystem code, unless you're going to do do all of them. (But then, they're idiosyncratic and may conflict between languages, like how ö is its letter in the Swedish alphabet.)
The main problem with case-insensitive is that software sometimes is lazily developed: If a file is named “File.txt” and a program opens “file.txt”, then on a case-insensitive file system it will work fine. If you then format your drive to case-sensitive, the same software now fails to load the file.
Source: tried case-sensitive filesystem on macOS some years ago.
What I really like is a naming files with a forbidden windows character in Linux and they wont copy over to a windows partition. I end up using a question mark quite a bit for some reason.
Strictly speaking, this is a limitation of the default filesystem, and not the core operating system. If you mount a NFS share that is case sensitive, it will still be case sensitive.
What a tragedy. Giving files slightly different names seems far more organized and logical than having several files with the same name and different capitalization. Really seems like a non-issue to me.
EDIT: I will never simp for Windows or Microsoft, I definitely think Linux is better in many ways. But my point still stands about this specific topic.
Fun things happen whenever you upload 2 files with the same names, but differently capitalized letters to a Nas from a linux box, and then try to delete one of them from windows.
It broke so hard I actually got a bsod....
you can also use basically anything that's not / in a file name as well, it's pretty based. Meanwhile on windows you have to use SMB mappings if you don't want your directory structure to self immolate, what a good operating system.
Thought experiment: Would you expect a programming language variable name to be case insensitive?
That is, if you set foo = 1 and then print FOO, what should happen? Most programming languages throw an error.
Is this even comparable with filenames, which are, after all, basically variable names that hold large quantities of data?
If there is a difference, is it the fact it's a file, or - for a mad idea - should files with only a few bytes of data retain case insensitivity? And if that idea is followed through, where's the cutoff? 256 bytes? 7?
(Anyway, Windows filenames are case sensitive, in a sense. If you save "Letter to Grandma.txt" it will retain those two capital letters and all the lower case letters exactly as they are. It won't suddenly change to "LETTER to Grandma.txt", despite the fact that if you try to open a file by that name, you'll get the same file.)
That would be awful for CAD software since they often display part names, which are derived from the file name only in uppercase letters for readability. But Linux doesn't really have any industry standard CAD software anyway.
I sometimes run into this when I extract an archive file on Windows and there are files named with different cases but are otherwise the same. I prefer case-sensitivity because I like precision and fewer assumptions being made about a system and how it's used.