Linux directory structure
From Pengwings
This page might help you to understand the layout of the Linux file system a bit better.
"Modifiable" column indicates whether or not you can write to this directory on the Atomic Desktop. If the column says "yes" then these files are kept separate from the atomic image and will be preserved regardless of which deployment you boot. If the column is blank, these files are part of the deployment and can't be altered directly (although you can install and uninstall packages using rpm-ostree).
/etc folder is special; this directory is kept as part of the deployment but is also writable. The contents are essentially kept as a diff, when a new deployment is created the diff gets applied over the top of it using a 3-way merge.
| Directory | Symlinked to | Modifiable | Purpose | Rough Windows equivalent (ish) |
|---|---|---|---|---|
| Folders managed by the distribution (in /usr), on Atomic Desktop these are managed by rpm-ostree | ||||
| /usr | Files which are part of the distro, usually installed and managed by the package manager | C:\Program Files\ C:\Windows\ | ||
| /bin | /usr/bin | Programs on PATH bundled with the distro that you can use as a normal user | ||
| /lib | /usr/lib | 32-bit system libraries | ||
| /lib64 | /usr/lib64 | 64-bit system libraries | ||
| /sbin | /usr/sbin | Programs on PATH bundled with the distro that need superuser | ||
| Folders managed automatically by the system | ||||
| /media | /run/media | Temporary automatic mounts for external storage, such as removable USB drives | Drive letters in My Computer | |
| Folders managed by the administrator | ||||
| /etc | 3-way merge | System-wide configuration files, installing packages sometimes puts files here | Registry | |
| /mnt | yes | Temporary or permanent mounts for any purpose (e.g. secondary hard drives, remote network shares) | Drive letters in My Computer | |
| /opt | yes | Third-party software which isn't installed via the package manager and doesn't follow package structure | C:\Program Files\ | |
| /srv | yes | Contains server data files Probably not useful unless you're running server programs |
||
| /usr/local | yes | Third-party file directory with a layout that looks like the normal structure of /usr Contains subfolders like bin, lib, lib64, sbin which behave like the distro counterparts including being on PATH |
C:\Program Files\ | |
| /var | yes | Variable data files not specific to a particular user (e.g. log files) | C:\ProgramData\ | |
| User-level directories | ||||
| /home | yes | User folders for the standard user | C:\Users\ | |
| /root | yes | User folder for the root user | ||
| Temp folders | ||||
| /run | Used by system packages to store small amounts of runtime data, essentially a system package temp folder, only writable by root | C:\Windows\TEMP\ | ||
| /tmp | yes | Temp folder where normal people have r/w access | AppData\Local\Temp\ | |
| Special directories | ||||
| /boot | Files relating to the bootloader and booting the system | |||
| /dev | Contains file-like objects which allow I/O access for hardware devices on the system | |||
| /proc | Contains file-like objects relating to running processes | |||
| /sys | Virtual file system that can be accessed to set or obtain information about the kernel's view of the system | |||
| Other directories | ||||
| /rpms | Unknown - seems empty/unused and there isn't any r/w access to this folder | |||
| /sysroot | Folder containing files relating specifically to atomic desktop | |||