October 4, 2015 - Linux is not case sesitive

October 4, 2015

Linux is not case sensitive

What? Linux is case sensitive, everybody knows that. right? Well get ready to be proven wrong with a purely semantic argument.

A common mistake for anyone recently converted from Windows to Linux is trying to navigate to a file or folder via the command line, but typing it in the incorrect case, either capitalizing the first letter, of failing to capitalize the first letter, or typing the name in (God forbid) camel case, then wondering why it isn't working. Upon seeking assistance from a seasoned Linux user such as yourself (probably), they are often given the simple answer, "Linux is case sensitive". While this is usually mostly true in the given scenario, it is not the whole truth.

The fact is that Linux is neither case sensitive, not case insensitive. The scenario that most people refer to when demonstrating case sensitivity is command line navigation. This is not the whole of Linux, however, even in reference to command line navigation it is not entirely factual.

Most Linux distributions boot off of ext2, ext3, or ext4 filesystems. This is where case sensitivity comes in, it's a part of the filesystem, not the kernel. Linux can be booted off a case insensitive file system such as fat32 or ntfs (why would you do this though?) and it would run just fine and would no longer be case sensitive. You could even mount a case insensitive device and navigate to it, all the files in that device can be referenced with any capitalization you like and Linux will have no problem with it. You will probably notice one issue though, tab completion. Both bash and ash will refuse to tab-complete file names that do not match in capitalization, but once again, this is not Linux's fault, its the fault of a program running on top of Linux. Additionally, if you could manage to get Windows to boot off of ext3, it would be case sensitive just like Linux, except it would probably just go to a blue screen because that's what Windows does when you want to do something new, or something unsanctioned, but since there aren't even drivers for ext3 on Windows, and since you will probably never touch Windows again, you won't be having this problem.

In what other scenarios do we encounter case sensitivity? I don't know, programming? Well, that depends on the language, not the kernel. C is case sensitive while HTML is not.

The best argument for case sensitivity in Linux would be that some programs' source code cannot be stored or compiled on a case insensitive file system because it contains files that differ only in capitalization (this seems particularly prevailant in C++ software), but guess what? The Linux kernel isn't one of them, and it can be stored and compiled on a case insensitive file system with no problem.

Therefore, I rest my case, Linux is not case sensitive. That's all for now. Peace!