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
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