This is one case where I think Windows is appropriately designed for its target audience.
I don’t really see the benefit of allowing users to create files with the same name in the same directory, yeah, yeah I know that case sensitivity means that it isn’t same name, but imagine talking to a user, guiding them to open the file /tmp/doc/File and they open /tmp/doc/file instead
The reason, I suspect, is fundamentally because there’s no relationship between the uppercase and lowercase characters unless someone goes out of their way to create it. That requires that the filesystem contain knowledge of the alphabet, which might work if all you wanted was to handle ASCII in American English, but isn’t good for a system which needs to support the whole world.
In fact, the UNIX filesystem isn’t ASCII. It’s also not unicode. UNIX uses arbitrary byte strings, with special significance given to a very small number of bytes (just ‘/’ and ‘\0’, I think). That means people are free to label files in whatever way they like, and their terminals or other applications are free to render them in whatever way seems appropriate, without the filesystem having to understand unicode.
Adding case insensitivity would therefore actually be significant and unnecessary complexity to add to the filesystem drivers, and we’d probably take a big step backwards in support for other languages
Oh, I realize why it is, I just don’t see it as an advantage, the whole argument is just a technical one, not a usabillity one.
You can’t even clone the Linux kernel on windows because of filenames
I prefer case sensitive but I guess that’s just me
surely Git warns about stuff like this when you clone it, right ?
It tells you there’s a name clash, and then it clones it anyway and you end up with the contents of
README.MD
inREADME.md
as an unstaged change.sounds like actually a good solution … tho doesnt sound like it would work for more than 2 similarly-named files
I don’t think it’s intended as a “solution”, it just lets the clobbering that is caused by the case insensitiveness happen.
So git just goes:
- checkout content of README.md to README.md (OS creates README.md)
- checkout content of README.MD to README.MD (OS overwrites README.md)
If you add a third or fourth file … it would just continue, and file gets checked out first gets the filename and whichever file gets checked out last, gets the content.
thats better than Git just choosing a file to keep.
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 meantFile.txt
, the rename function does nothing … and it will keep displaying asfIle.txt
. You have to rename it to something else entirely, then rename it back to the original name with the intended case.I can make a file named COM1 on Linux. That’s on the forbidden list for Windows.
The forbidden list:
- CON
- PRN
- AUX
- CLOCK$
- NUL
- COM1
- COM2
- COM3
- COM4
- COM5
- COM6
- COM7
- COM8
- COM9
- LPT1
- LPT2
- LPT3
- LPT4
- LPT5
- LPT6
- LPT7
- LPT8
- LPT9
That’s because Windows is generally very backwards compatible.
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
I think if you can write them in two different ways it should consider them two different things
It’s quite useful for stuff like PROGRAM and Program in the same directory where PROGRAM is the program itself and Program is some unrelated files about the program. Bad example, but the case stands.
So what you’re telling me is that it’s useful when the software you use is made by absolute idiots?
It’s not about software. Program, PROGRAM were just placeholders for content. I know you can think more abstract and argue in better faith than this.
Replace ‘software’ by w/et placeholder thing
Git likes to have a word with you.
Command ‘Git’ not found
cd downloads
bash: cd: downloads: No such file or directory
cd Downloads
user@pcname:~/Downloads$
Zsh autocompletes lowercase input to the correct file or folder name when using tab. It’s great!
Fish does this too, it’s super convenient
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.
Is it just me or is that more of a hinderance?
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.
Vscode does not handle this well the one time I accidentally created 2 files with different cases. On one level it recognises them both as separate files, but other time thinks they’re the same.
Had this issue with Full Tilt! installer on Wine, fortunately the fix was easy