Skip to content
Mate Gelei-Szego
Mate Gelei-Szego

Making huge cloud deployments a little more effective.

  • Home
  • About me
Mate Gelei-Szego

Making huge cloud deployments a little more effective.

On case-sensitive file systems

Posted on April 29, 2025

Linus Torvalds Expresses His Hatred For Case-Insensitive File-Systems. I’d like to express my hatred distrust towards anything that makes the average user’s (i.e. the one that indirectly pays our salaries) life harder.

In case-sensitive file systems, file names like “CustomerPresentation.pptx” and “customerpresentation.pptx” are treated as distinct. This means you could have both files in the same directory, each containing different content. Common case-sensitive file systems include ext4, used by many Linux distributions.

On the other hand, in case-insensitive file systems, “CustomerPresentation.pptx” and “customerpresentation.pptx” are considered the same file, as it should, because semantically the meaning of the two filenames are the same, so only one can exist in a directory. The system ignores capitalization when accessing files, making it more forgiving for users. Windows uses NTFS, and macOS uses APFS or HFS+, all of which are case-insensitive by default (slightly related: creating a CS folder on macOS).

Here’s 3 4 reasons why Linus is wrong, and I’m willing to die on this hill:

Ease of use

Users don’t need to remember the exact capitalization of file names when opening, saving, or referencing files. For example, if a file is named “VacationPhotos.jpg,” typing “vacationphotos.jpg” or even “VACATIONPHOTOS.JPG” will still access the correct file. It is particularly valuable for non-technical users who may not be aware of or care about the concept of case sensitivity. For instance, a user following instructions to open “config.ini” might type “Config.ini” and expect it to work.

Consistency

Case-insensitive file systems enforce a unique naming convention within a directory, preventing the creation of multiple files with names that differ only in case. For example, you cannot have “data.txt,” “Data.txt,” and “DATA.TXT” in the same folder, which is – again – how it should be.

Compatibility

Many applications, particularly those designed for Windows and macOS, are built with the assumption that the file system is case-insensitive. They will not have second thoughts about completing the filename from “report” to “report.PDF”.

Common sense

If someone mentions “the report,” it’s understood to be the same as “The Report.” This natural case-insensitivity extends to other contexts, like usernames or email addresses, which are often case-insensitive to simplify access. Case-insensitive file systems mirror this expectation, making the computing experience feel more intuitive.

The Wikipedia page on case sensitivity draws a parallel with search behavior: “Users looking for the word ‘dog’ in an online journal probably do not wish to differentiate between ‘dog’ or ‘Dog’, as this is a writing distinction.”

Linus is not entirely wrong, though (but mostly is)

While case-insensitive file systems are advantageous for everyday users, it’s worth acknowledging that case-sensitive file systems have their place, particularly in technical contexts. For example, if you want to use base64-encoded filenames, then yeah, you’ll most likely need a CS system.

However, for everyday users, these scenarios are rare. The average user is unlikely to need multiple files with names differing only in case or to encounter situations where case sensitivity provides a practical benefit. Moreover, the compatibility issues and potential for confusion in case-sensitive systems often outweigh these advantages for non-technical users.

The preference for case-insensitive file systems in consumer operating systems reflects their suitability for everyday use. Windows has maintained case-insensitive file systems since MS-DOS, prioritizing user-friendliness and backward compatibility. macOS, while offering case-sensitive options, defaults to case-insensitive for similar reasons.

Share this:

  • Click to share on Facebook (Opens in new window) Facebook
  • Click to share on X (Opens in new window) X
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to share on Reddit (Opens in new window) Reddit
  • Click to email a link to a friend (Opens in new window) Email

Post navigation

Previous post

Mate Gelei-Szego

Experienced cloud engineer with a background in software development, service management and finance.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Recent Posts

  • On case-sensitive file systems
  • Unlocking Ubuntu LUKS2 encryption automatically at boot
  • Install RSAT via Powershell
  • Azure DevOps – build pipeline billing extravaganza
  • Quickstart – Azure AD B2C authentication in ASP.NET Core MVC

Categories

  • Azure
  • C# / .NET
  • Note to self
  • Random
©2025 Mate Gelei-Szego | WordPress Theme by SuperbThemes