Unix directory structure

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In Unix and Unix-like operating systems, the Unix directory structure is a convention for filesystem layout.

Several attempts exist to standardize the Unix filesystem layout, such as the "Filesystem Hierarchy Standard,"[1] however, it is targeted primarily at Linux. Also, as part of the "Linux Standards Base", a common filesystem layout is defined, to encourage interoperability among different Linux distributions.[2]

Here is a generalized overview of common locations of files on a Unix operating system:

Directory or file Description
/ The slash / character alone denotes the root of the filesystem tree.
/bin
Stands for "binaries" and contains certain fundamental utilities, such as ls or cp, which are generally needed by all users.
/boot
Contains all the important files which are required for successful booting process.
/dev
Stands for "devices". Contains file representations of peripheral devices and pseudo-devices.
/etc
Contains system-wide configuration files and system databases.
/home
Contains the home directories for the users.
/lib
Contains system libraries, and some critical files such as kernel modules or device drivers.
/lib64
Contains system libraries, and some critical files such as kernel modules or device drivers, on some 64-bit systems.
/media
Default mount point for removable devices, such as USB sticks, media players, etc.
/mnt
Stands for "mount". Contains filesystem mount points. These are used, for example, if the system uses multiple hard disks or hard disk partitions. It is also often used for remote (network) filesystems, CD-ROM/DVD drives, and so on.
/opt
Contains add-on software. Some large program suites may prefer to be installed here, rather than under /usr.
/proc
procfs virtual filesystem showing information about processes as files.
/root
The home directory for the superuser "root" - that is, the system administrator. This account's home directory is usually on the initial filesystem, and hence not in /home (which may be a mount point for another filesystem) in case specific maintenance needs to be performed, during which other filesystems are not available. Such a case could occur, for example, if a hard disk drive suffers physical failures and cannot be properly mounted.
/sbin
Stands for "system (or superuser) binaries" and contains fundamental utilities, such as init, usually needed to start, maintain and recover the system.
/srv
Server data (data for services provided by system).
/sys
In some Linux distributions, contains a sysfs virtual filesystem, containing information related to hardware and the operating system.
/tmp
A place for temporary files. Many systems clear this directory upon startup; it might have tmpfs mounted atop it, in which case its contents do not survive a reboot, or it might be explicitly cleared by a startup script at boot time.
/usr
Originally the directory holding user home directories,[3] its use has changed. It now holds executables, libraries, and shared resources that are not system critical, like the X Window System, KDE, Perl, etc. (The name "Unix System Resources" is a post hoc backronym[citation needed].) However, on some Unix systems, some user accounts may still have a home directory that is a direct subdirectory of /usr, such as the default as in Minix. (on modern systems, these user accounts are often related to server or system use, and not directly used by a person)
/usr/bin
This directory stores all binary programs distributed with the operating system not residing in /bin, /sbin or (rarely) /etc.
/usr/include
Stores the development headers used throughout the system. Header files are mostly used by the #include directive in C programming language, which historically is how the name of this directory was chosen.
/usr/lib
Stores the required libraries and data files for programs stored within /usr or elsewhere.
/usr/local
Resembles /usr in structure, but its subdirectories are used for additions not part of the operating system distribution, such as custom programs or files from a BSD Ports collection. Usually has subdirectories such as /usr/local/lib or /usr/local/bin.
/var
A short for "variable." A place for files that may change often - especially in size, for example e-mail sent to users on the system, or process-ID lock files.
/var/log
Contains system log files.
/var/mail
The place where all the incoming mails are stored. Users (other than root) can access their own mail only. Often, this directory is a symbolic link to /var/spool/mail.
/var/spool
Spool directory. Contains print jobs, mail spools and other queued tasks.
/var/tmp
A place for temporary files which should be preserved between system reboots.

References [edit]

  1. ^ "Filesystem Hierarchy Standard". Retrieved 2007-07-25. 
  2. ^ "Linux Standards Base". Retrieved 2007-07-25. 
  3. ^ Ritchie, Dennis. "Unix Notes from 1972". Retrieved 4 October 2012.