Is it part of any standard (e.g. POSIX), that system files should be lower case?

No, lower case names are not specified for software package installation directories.

In fact, historically software packages installed in /opt started with the all-capitals stock ticker symbol of the company providing the package, such as SUNW for Sun Microsystems or ORCL for Oracle.

So packages such as Sun's QFS filesystem would be installed in a directory named something like /opt/SUNWqfs.


The POSIX standard has a section with guidelines for conforming utilities (i.e., "such as those written specific to a local system or that are components of a larger application") that says

  1. Utility names should be between two and nine characters, inclusive.
  2. Utility names should include lowercase letters (the lower character classification) and digits only from the portable character set.

[ref: 12.2 Utility Syntax Guidelines]

It's unclear to me whether the use of the words "should include" really means "should only include". (The consensus in the comments below is that it means "should only include").

An application on a Unix system that does not claim to be a POSIX conformant utility may otherwise use whatever name it wants. If it does claim to be a POSIX conformant utility that is part of the POSIX shell utilities, the text after the guidelines in section 12.2 says that "should" changes meaning to "shall".

There are no similar guideline regarding directory names as far as I know. macOS (which is a certified UNIX 03 product when running on an Intel-based Mac computer) uses /Users as the prefix for user's home directories, for example, as well as a number of other mixed-case directory names.


Beside POSIX guidelines said, I think that could have even more weight the user tradition. Case names as "ApplicationName" became popular with Wikis explosion, accustoming some people (like me) to use capitals instead of hyphens, or worse, spaces. But this was some years after Linux and similar OS become popular, with a very long Unix tradition behind.

This tradition has been (is) always the simplicity, not only to follow the rules that Kusalananda pointed, even abbreviating words of four-six characters only (e.g., /usr for "user", or /srv for "serve" or /mntfor "mounted") and obviously longer meanings (/sbin for "superuser binaries". In this tradition, uppercase, force you to press the Shift key, and maybe accidentally also the Caps Lock key, is simply evil.

At some extent, this is astonishing because Unixes has been for long time able to write case sensitive long filenames, while in contrast, MS-DOS/Windows was limited to case insensitive short filenames (eight characters plus three for the extension) but quickly lost this simplicity ("Program Files","My Documents", etc.) when Windows 95 surpass this limitation.

Nonetheless, today there are a few exceptions like the NetworkManager daemon and probably we will see more WikiWords in the future. But we still hate the mouse and write in the terminal long names that you can end only with the TabTab autocompletion. Or someone see some advantage renaming vim to VisualImproved?