187 points

This is one case where I think Windows is appropriately designed for its target audience.

permalink
report
reply
76 points

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

permalink
report
parent
reply
36 points

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

permalink
report
parent
reply
17 points

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.

permalink
report
parent
reply
4 points

You’re basically arguing that a system shouldn’t support user friendly things because that would add significant burden to the programmer.

The quintessential linux philosophy. Well done! I mean, what is language? Why have named code variables? This is just a random array of bytes!

permalink
report
parent
reply
0 points

pov: you encode filenames in utf-1, just happens to contain one of those bytes

permalink
report
parent
reply
4 points

Let’s say you have a software that generates randomly named files, having the ability to use both upper case and lower case means you can have more files with the same amount of characters, but that sounds horrible and it’s the only thing I can think of atm

permalink
report
parent
reply
1 point
*

Idiot user! ;)

In case it’s not obvious, I agree that I don’t see much of a point in case sensitivity in an OS outside of simply providing additional options for various uses, it absolutely would be confusing for end users having to interact with it in many ways.

permalink
report
parent
reply
32 points
*

This isn’t “Windows design”… this is just inherited stone age bullshit from the DOS days when the filesystem was FAT16 and all file names were uppercase 8.3.

NTFS is case sensitive in its underlying design, but was made case insensitive by default, yet case preserving, for reasons of backwards compatibility.

If Microsoft has to design something from scratch, without the need for backwards compatibility, they go for case sensitive themselves. For example: Azure Blob Storage has case sensitive file names.

permalink
report
parent
reply
6 points

If you rename a file only changing the casing it doesn’t update properly, you need to rename it to something else and back.
This is so userfriendly I have been stumped by it multiple times.

On the other hand in using Linux I have had a number of problems with the casing of files: The number is 0

permalink
report
parent
reply
6 points

If you rename a file only changing the casing it doesn’t update properly, you need to rename it to something else and back. This is so userfriendly I have been stumped by it multiple times.

To my great surprise, this has been fixed. I don’t know when, but I tried it on my Windows 10 VM and it just worked. Only took them 20 years or so :)

permalink
report
parent
reply
1 point

case insensitive by default, yet case preserving

This isn’t just a Windows thing… It’s the same on MacOS by default.

permalink
report
parent
reply
3 points
*

macOS also does this by default, but you can change it (though you have to reformat the disk in question). This is generally fine for non-system disks if you REALLY need it for some reason, but afaik it is not recommended for the OS disk due to assumptions that macOS-targeted binaries make (similar to the windows regex version matching that caused problems for a while because it became the unofficial best way to check windows versions for app install compatibility). It’s doubly annoying on newer Apple systems because the integrated SSDs are WAY faster than pretty much anything else you can connect to it. But for the most part, I find it’s more of a nuisance to keep in mind than a real problem (I’ve been dealing with dev-issue MBPs since about 2012).

As in the windows case, this is also an appropriate choice for the average Apple user (though the fact that they’re fairly ubiquitous as dev machines in many places is annoying on several levels, despite the generally solid best-case performance and thermals I’ve observed).

permalink
report
parent
reply
1 point

Huh I had thought case-sensitive was default on APFS/HPFS and you had to choose insensitive specifically but I guess not

permalink
report
parent
reply
5 points

Just checked on my work box - if you go into Disk Utility and start the process to add a volume, the default selection is APFS, and there’s an option in the dropdown for for APFS (Case-sensitive)

permalink
report
parent
reply
109 points
*

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

permalink
report
reply
24 points

Git likes to have a word with you.

permalink
report
parent
reply
39 points
*

Command ‘Git’ not found

permalink
report
parent
reply
4 points

Beautiful

permalink
report
parent
reply
12 points

Huh, what makes this a use case in favor of case sensitive file names? How does git use this feature?

permalink
report
parent
reply
26 points

Create multiple branches that only differ in cases from a Unix OS so it breaks git for Windows users in the same project.

permalink
report
parent
reply
9 points

I feel the same way about programming languages. There is no way that “User” and “user” should refer to different variables. How many times has that screwed people up, especially in a weekly typed language?

One of the many things that I feel modern versions of Pascal got right.

permalink
report
parent
reply
11 points
*

Nope. Completely different.

Case is often used to distinguish scope. Lowercase is local while uppercase is public. “Name = name” is a pretty standard convention, especially in constructors.

There is a ubiquitous use case in programming. There is not in the file system.

permalink
report
parent
reply
5 points

My point is not about how case is meant to be used my point is that it is very easy to make a mistake that is difficult to spot. I think it makes a lot more sense to the case insensitive, and force different names to be used.

permalink
report
parent
reply
3 points

This is the first time I’ve seen uppercase denoting scope. Usually it is done with a “_” or “__” prefix.

Casing styles usually mean different identifier types.

snake_case or pascalCase for functions and variables, CamelCase for types, UPPER_SNAKE_CASE for constants, and so on.

If we want to apply this to file systems, you could argue something like: CamelCase for directories, snake_case for files, pascalCase for symlinks, UPPER_SNAKE_CASE for hidden files.

permalink
report
parent
reply
9 points
*

My naming convention for C++ is that custom types are capitalized and instances aren’t. So I might write User user;.

permalink
report
parent
reply
1 point

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.

permalink
report
parent
reply
0 points

So what you’re telling me is that it’s useful when the software you use is made by absolute idiots?

permalink
report
parent
reply
2 points

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.

permalink
report
parent
reply
0 points

I think if you can write them in two different ways it should consider them two different things

permalink
report
parent
reply
53 points

Windows and NTFS support case sensitive filenames. The functionality is disabled for compatibility reasons.

permalink
report
reply
10 points

I remember the good old days of Windows MS-DOS where they had an 8 character filename limit lol

permalink
report
parent
reply
11 points

8.3, actually!

permalink
report
parent
reply
6 points

Gotta go count my files again… oh yeah it’s PROJE~14.BAS

permalink
report
parent
reply
6 points

Same on macOS. Apple has “case-sensitive HFS+” as an option for UNIX compatibility (or at least they used to) but actually running a system on it is a bad idea in general.

permalink
report
parent
reply
4 points

What happens if i put case sensitive files into an ntfs pendrive and plugged into windows?

permalink
report
parent
reply
4 points

Windows sees both files

permalink
report
parent
reply
1 point
*

Can it rename it then? What happens if cd into a folder from cmd with same name?

permalink
report
parent
reply
4 points
2 points

I actually really like that fsutil case sensitivity can be set on a folder by folder basis so that I can have a safe space to deal with Linux files.

permalink
report
parent
reply
2 points

You can create files with the same name differing only by case through WSL. I’ve had issues with it before.

permalink
report
parent
reply
49 points

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
permalink
report
reply
17 points

That’s because Windows is generally very backwards compatible.

permalink
report
parent
reply
15 points

So is Linux, but it puts stuff like that in /dev

permalink
report
parent
reply
13 points

The thing is, a lot of the legacy backwards compatible stuff that’s in Linux is because a lot of things in Unix were actually pretty well thought out from the get go, unlike many of the ugly hacks that went into MSDOS and later Windows and overstayed their welcome.

Things like: long case sensitive file names from the beginning instead of forced uppercase 8.3 , a hierarchical filesystem instead of drive letters, “everything is a file” concept, a notion of multiple users and permissions, pre-emptive multitasking, proper virtual memory management instead of a “640k is enough” + XMS + EMS, and so on.

permalink
report
parent
reply
8 points

LPT1 LPT2 LPT3 LPT4 LPT5 LPT6 LPT7 LPT8 LPT9

Why does Microsoft hate Life Pro Top listicles?

permalink
report
parent
reply
3 points

You’re probably joking, but in case you don’t know: LPT stands for Line Printer Terminal, and LPT1, LPT2, LPT3… referred to parallel ports which were typically (though not exclusively) used to connect a printer.

permalink
report
parent
reply
7 points
Deleted by creator
permalink
report
parent
reply
3 points

oh no, but com5 is one of my favorite words! literally unusable.

permalink
report
parent
reply
46 points

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.

permalink
report
reply
9 points

Yeah I’ve definitely run into issues where case sensitivity causes problems. Especially in programs that are cross-functional between Windows and Linux. Like when I recently downloaded some bios files for a Playstation emulator and I spend time figuring out and troubleshooting why they weren’t working until it finally hit me the door McFly it’s cause the file name was in lowercase not uppercase. Than I cared to admit to figure out

permalink
report
parent
reply
2 points

Oooh, I’ve had that with some device. I think it was a camera or something like that. I’d forgotten about it. It took me ages to figure it out.

permalink
report
parent
reply
3 points

Yours is not too question why, yours is to admire the marvel of technology even if it’s worth than useless

permalink
report
parent
reply
2 points

surely this is the only place where we would run into stupid syntax problems, right?

imo syntax bugs will be a thing until the end of time, they certainly beat having to rip out 90% of what you’ve done to fix it that’s for sure.

permalink
report
parent
reply

linuxmemes

!linuxmemes@lemmy.world

Create post

Hint: :q!


Sister communities:

Community rules (click to expand)

1. Follow the site-wide rules
2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack members of the community for any reason.
  • Leave remarks of “peasantry” to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
4. No recent reposts
  • Everybody uses Arch btw, can’t quit Vim, and wants to interject for a moment. You can stop now.

Please report posts and comments that break these rules!

Community stats

  • 6.5K

    Monthly active users

  • 1.3K

    Posts

  • 71K

    Comments