File systems aren’t even real.
Fun fact, though: Linux is the only case-sensitive one.
Edit: I feel silly for forgetting that it’s all about the choice of FS. If anyone needs anything from me, I’ll be in the corner, coloring.
I once ran into a bug in an Arduino program where it wouldn’t compile. The author blamed my “broken environment”. Turned out, he had included “arduino.h” instead of the correct “Arduino.h”.
From a technical standpoint, the windows NTFS filesystem is designed inherently case sensitive, just windows doesn’t allow creating case sensitive files.
Connecting an NTFS drive to linux, you can create two separate files readme.txt and Readme.txt.
Using windows, you can see both files in the filesystem, but chances are most (if not all) software will struggle accessing both files, opening readme.txt might instead open Readme.txt or vice versa.
For a few years now, Windows has had the capability of marking certain directories as case-sensitive. So you can have a mixed-case-sensitivity filesystem experience now. Yeah. :/
Such a microsoft thing to do.
Least favorite part of linux honestly
Case-insensitive filesystems are for maniacs. They are only causing trouble. Ever had two folders with the same name but different capitalization in windows? You see both, but whichever you click it will always open the same one, while the other can’t be accessed. Psychopath behavior.
That’s because NTFS isn’t case-insensitive. If it was there’d be no two folders. Windows is a case-insensitive operating system running on a case-sensitive file system. It’s pretty clear Microsoft wanted case sensitivity and then realised how much legacy software that’d break.
Makes changing the case of a file/folder a lot easier though. Windows you have to rename it to something else then rename it again just to change case but Linux you can just…rename it. It’s a small thing but it’s something
is this bug really impossible to fix just because the file system is case insensitive?
You can turn it off, at least for ext4: https://lwn.net/Articles/784041/
Although you can use case insensitive filesystems with Linux, and case sensitive filesystems with macOS. I believe the case sensitivity is a function of the specific filesystem — but yeah, practically, the root for Linux is always case sensitive, and APFS
ain’tis only if you ask it to be ( https://support.apple.com/lv-lv/guide/disk-utility/dsku19ed921c/mac ).When case insensitivity is the default I always wonder how many apps unknowingly rely on that due to typos somewhere. I encountered this once while porting a Windows/macOS app to Linux that someone imported a module with the wrong case and nobody noticed
VS Codium did that at some point, it probably still does but I haven’t checked
As is right and proper.
On MacOS you get a choice when you format the drive.
This meme is way more clever than it should be
Didn’t realize until I read your comment. Thanks.
It’s not something the Jedi would tell you.
Only a sith deals in absolute paths.
It’s the way.
I didn’t realise until I read that comment, your comment and the other comment about slash direction.
JFC, thank you. I didn’t realize until it was spelled out for me. I’m definitely not that kind of smart.
This is why I always sucked at games like Myst
I realized immediately, read the comment, and then went back to look for a deeper meaning. It wasn’t there.
I realized immediately, read the comment, and then went back to look for a deeper meaning. It wasn’t there.
I hate that I need to use escape characters when creating something for windows.
Python raw strings to the rescue!
Pathlib is the answer.
Nobody is stopping you from using forward slashes. Python will translate the path for the current platform.
Python doesn’t have to. Windows supports both out of the box. Has been for many, many years
Good to know!
Try pathlib. All your problems solved.
I don’t really watch Star Wars. I’m a more of a Trekkie gal.
🖖
See, you can separate files both ways as long as it’s logical
Specifying paths with - would be its own special brand of hell.
You can actually use / as a path separator on Windows in functions like fopen(), because it supports some ancient version of POSIX standard.
There used to be an undocumented setting in early versions of MS-DOS that would allow the setting of the command option character to something other than the slash, and if you did that, the slash automatically became the path separator. All you needed was
SWITCHAR=-
in your CONFIG.SYS and DOS was suddenly very Unix-y.It was taken out after a while because, with the feature being undocumented, too many people didn’t know about it and bits of software - especially batch files, would have been reliant on things being “wrong”. The modern support for regular slash in API calls probably doesn’t use any of the old SWITCHAR code, but it is, in some way, the spiritual descendant of that secret feature.
Here’s an old blog that talks about it: https://learn.microsoft.com/en-gb/archive/blogs/larryosterman/why-is-the-dos-path-character
The one thing about NT was that it didn’t have it’s own semantics, but it could emulate any system you wanted. It’s the unofficial successor of an OS that was based on creating VMs where you could run any other OS you want.
Then Microsoft decided to create their own system in it, and only really finished writing that one.
Also the internet belongs on the left.
And really, Linux/macos could be reduced to “Unix” https://upload.wikimedia.org/wikipedia/commons/7/77/Unix_history-simple.svg
Only Mac OS 10 and later, based on BSD, uses ‘/‘. (And, I guess, A/UX.) Classic MacOS used a ‘:’, but it wasn’t regularly exposed in the UI. The only way most users would know is that the colon couldn’t be used in a file name.
I might be wrong, but I think you still can’t use a ‘:’ in a filename in macOS. If I recall correctly it will let you do it and show it in Finder, but actually replace it with a ‘-’.
And BSD. It’s really just Windows vs. literally everything. Or is there anything else that uses backslashes?
Typical windows behavior
CP/M
Which in this context is named hilariously.
I mean literally… example.com**/**index.html
Both works fine in Windows tho?
Used to not
Times change. You used to not be able to run Linux in Windows, but you can do that too.
Yeah, and I’ve tried that. It turns out it works even better if you throw away the Windows part.
Thanks be to God
If you know what a nordic keyboard layout looks like, you’d probably prefer backslash. Since I moved to Linux a year ago I’ve been struggling to find the easiest way to forward slash. Shift + 7? Or numpad / with my right pinky?
For me it’s even worse. Forward slash is also Shift + 7 and backslash is AltGr + ß?? I hate that computing is only optimized for US american layouts. Going by my keyboard, the filepath separator should probably be an ö.
Get a macro pad and configure one button to type a forward slash.
How do you type URLs using that keyboard layout?
Shift+7 feels wrong for some reason, so I currently tend to just send my pinky on a kamikaze mission towards the numpad hoping I hit /. Sometimes I hit numlock, sometimes I hit *.
Even if I made a compose key “shortcut” via ~/.XCompose it’d still be more work than what I’m doing already.Macro pad could be a solution, I have considered it beforehand for other purposes tbh
I don’t get it
Linux uses forward slash. Windows uses backslash. Because some dude 45 years ago wanted to make it look different from UNIX.
I understand pre-OS X Macintoshes used colons.
They did! And I weirdly kind of miss them for the entirely non-logical reason that they looked elegant.
Don’t get me wrong, I adapted in about 3 seconds when I made the switch to Mac OS X 25 years ago, but I irrationally kinda miss them just a tiny bit.
Code in Rust and you can get double colons for your library path imports!
RISC OS uses periods and doesn’t have file extensions
Was that bill gates just to make one of the first incompatibilities in a long long run?
DOS originally didn’t even support directories but was using / for command line arguments. They didn’t want to change the option character and break stuff so they went with \ as the directory separator.
DOS wasn’t originally created by Microsoft. They bought the OS from computer shop in Seattle.
Thanks for the info, didn’t know that (I did know they bought DOS)!
This is a great video about the launch of Windows 95, that covers the history of DOS at the beginning: https://youtu.be/0Ol8ZSE-PEk. Worth watching if you’re interested in the history.
The lightsaber direction is like / \
I love linux like a pet. I love windows like my car. Can we stop with this pointless making a content mountain over any insignificant difference. Don’t get me started
Linux is my car and pet at the same time. Does that make it a carpet?
I just begun hearing “I’m in the house like carpet” inside my head. Thanks Tobyfox on Bluesky!
Look again