Project

General

Profile

Actions

Idea: FHS

  • Impact: file hierarchy
  • Status: complete
  • Target version: 0.2

Background

Since decades, UNIX systems have arcane file system hierarchy for historical reasons. Nowadays the /usr split is no longer required and its use is widely discouraged and no longer appropriate. Many distributions already provide symlinks from /bin to /usr/bin or vice versa.

Synopsis

Use a decent and modern filesystem hierarchy that is much simpler and convenient to use.

  • / - root filesystem
  • /bin - all executables
  • /boot - all boot files
  • /etc - system configuration
  • /home - user directories
  • /include - include/headers
  • /lib - shared libraries
    • /lib/cmake - CMake configuration files
    • /lib/pkgconfig - .pc files
  • /libexec - programs not meant to be called directly by users
  • /local - where users should install stuff by hand
  • /mnt - mount points
  • /root - root home directory (uid 0)
  • /share - data directories
    • /share/info - GNU info files
    • /share/man - man pages
  • /var - spool, run, log, cache
    • /var/run - pid files (mode 1777)
    • /var/spool - mail, cron etc.
  • /usr - symbolic link to / for compatibility (e.g. shebang using /usr/bin/env)
  • /sbin - symbolic link to /bin for compatibility (e.g. /sbin/depmod)

Updated by David Demelier 20 days ago · 13 revisions