Linux File System
/initrd
(on some distributions) Information for booting. Do not remove!
/lost+found
Recovered Files Each Linux file system has a lost+found directory. If the file system crashes, a file system check will be performed at next boot. Any corrupted files found will be placed in the lost+found directory, so you can attempt to recover as much data as possible. Every partition has a lost+found in its upper directory. Files that were saved during failures are here.
/media
Removable Media The /media directory contains subdirectories where removable media devices inserted into the computer are mounted. For example, when you insert a CD into your Linux system, a directory will automatically be created inside the /media directory. You can access the contents of the CD inside this directory.
/root
Root Home Directory The /root directory is the home directory of the root user. Instead of being located at /home/root, it's located at /root. This is distinct from /, which is the system root directory. The administrative user's home directory. Mind the difference between /, the root directory and /root, the home directory of the root user.
/selinux
SELinux Virtual File System If your Linux distribution uses SELinux for security (Fedora and Red Hat, for example), the /selinux directory contains special files used by SELinux. It's similar to /proc. Ubuntu doesn't use SELinux, so the presence of this folder on Ubuntu appears to be a bug.
/srv
Service Data The /srv directory contains "data for services provided by the system." If you were using the Apache HTTP server to serve a website, you'd likely store your website's files in a directory inside the /srv directory.
/run
Application State Files The /run directory is fairly new, and gives applications a standard place to store transient files they require like sockets and process IDs. These files can't be stored in /tmp because files in /tmp may be deleted.
/etc
Configuration Files The /etc directory contains configuration files, which can generally be edited by hand in a text editor. Note that the /etc/ directory contains system-wide configuration files - user-specific configuration files are located in each user's home directory. Most important system configuration files are in /etc, this directory contains data similar to those in the Control Panel in Windows
/dev
Device Files Linux exposes devices as files, and the /dev directory contains a number of special files that represent devices. These are not actual files as we know them, but they appear as files - for example, /dev/sda represents the first SATA drive in the system. If you wanted to partition it, you could start a partition editor and tell it to edit /dev/sda. This directory also contains pseudo-devices, which are virtual devices that don't actually correspond to hardware. For example, /dev/random produces random numbers. /dev/null is a special device that produces no output and automatically discards all input - when you pipe the output of a command to /dev/null, you discard it. Contains references to all the CPU peripheral hardware, which are represented as files with special properties.
/lib
Essential Shared Libraries The /lib directory contains libraries needed by the essential binaries in the /bin and /sbin folder. Libraries needed by the binaries in the /usr/bin folder are located in /usr/lib. Library files, includes files for all kinds of programs needed by the system and the users.
/bin
Essential User Binaries The /bin directory contains the essential user binaries (programs) that must be present when the system is mounted in single-user mode. Applications such as Firefox are stored in /usr/bin, while important system programs and utilities such as the bash shell are located in /bin. The /usr directory may be stored on another partition - placing these files in the /bin directory ensures the system will have these important utilities even if no other file systems are mounted. The /sbin directory is similar - it contains essential system administration binaries. Common programs, shared by the system, the system administrator and the users.
/misc
For miscellaneous purposes.
/cdrom
Historical Mount Point for CD-ROMs The /cdrom directory isn't part of the FHS standard, but you'll still find it on Ubuntu and other operating systems. It's a temporary location for CD-ROMs inserted in the system. However, the standard location for temporary media is inside the /media directory.
/home
Home Folders The /home directory contains a home folder for each user. For example, if your user name is bob, you have a home folder located at /home/bob. This home folder contains the user's data files and user-specific configuration files. Each user only has write access to their own home folder and must obtain elevated permissions (become the root user) to modify other files on the system. Home directories of the common users.
/proc
Kernel & Process Files The /proc directory similar to the /dev directory because it doesn't contain standard files. It contains special files that represent system and process information. A virtual file system containing information about system resources. More information about the meaning of the files in proc is obtained by entering the command man proc in a terminal window. The file proc.txt discusses the virtual file system in detail.
/opt
Optional Packages The /opt directory contains subdirectories for optional software packages. It's commonly used by proprietary software that doesn't obey the standard file system hierarchy - for example, a proprietary program might dump its files in /opt/application when you install it. Typically contains extra and third party software.
/net
Standard mount point for entire remote file systems
/boot
Static Boot Files The /boot directory contains the files needed to boot the system - for example, the GRUB boot loader's files and your Linux kernels are stored here. The boot loader's configuration files aren't located here, though - they're in /etc with the other configuration files. The startup files and the kernel, vmlinuz. In some recent distributions also grub data. Grub is the GRand Unified Boot loader and is an attempt to get rid of the many different boot-loaders we know today.
/sbin
System Administration Binaries The /sbin directory is similar to the /bin directory. It contains essential binaries that are generally intended to be run by the root user for system administration. Programs for use by the system and the system administrator.
/tmp
Temporary Files Applications store temporary files in the /tmp directory. These files are generally deleted whenever your system is restarted and may be deleted at any time by utilities such as tmpwatch. Temporary space for use by the system, cleaned upon reboot, so don't use this for saving any work!
/mnt
Temporary Mount Points Historically speaking, the /mnt directory is where system administrators mounted temporary file systems while using them. For example, if you're mounting a Windows partition to perform some file recovery operations, you might mount it at /mnt/windows. However, you can mount other file systems anywhere on the system. Standard mount point for external file systems, e.g. a CD-ROM or a digital camera.
/
The Root Directory Everything on your Linux system is located under the / directory, known as the root directory. You can think of the / directory as being similar to the C:\ directory on Windows - but this isn't strictly true, as Linux doesn't have drive letters. While another partition would be located at D:\ on Windows, this other partition would appear in another folder under / on Linux. The tree of the file system starts at the trunk or slash, indicated by a forward slash (/). This directory, containing all underlying directories and files, is also called the root directory or "the root" of the file system. Directories that are only one level below the root directory are often preceded by a slash, to indicate their position and prevent confusion with other directories that could have the same name.
/usr
User Binaries & Read-Only Data The /usr directory contains applications and files used by users, as opposed to applications and files used by the system. For example, non-essential applications are located inside the /usr/bin directory instead of the /bin directory and non-essential system administration binaries are located in the /usr/sbin directory instead of the /sbin directory. Libraries for each are located inside the /usr/lib directory. The /usr directory also contains other directories - for example, architecture-independent files like graphics are located in /usr/share. The /usr/local directory is where locally compiled applications install to by default - this prevents them from mucking up the rest of the system. Programs, libraries, documentation etc. for all user-related programs.
/var
Variable Data Files The /var directory is the writable counterpart to the /usr directory, which must be read-only in normal operation. Log files and everything else that would normally be written to /usr during normal operation are written to the /var directory. For example, you'll find log files in /var/log. Storage for all variable files and temporary files created by users, such as log files, the mail queue, the print spooler area, space for temporary storage of files downloaded from the Internet, or to keep an image of a CD before burning it.