file-hierarchy.7   file-hierarchy.7 
skipping to change at line 76 skipping to change at line 76
/tmp /tmp
The place for small temporary files. This directory is usually The place for small temporary files. This directory is usually
mounted as a "tmpfs" instance, and should hence not be used for mounted as a "tmpfs" instance, and should hence not be used for
larger files. (Use /var/tmp for larger files.) Since the directo ry larger files. (Use /var/tmp for larger files.) Since the directo ry
is accessible to other users of the system it is essential that is accessible to other users of the system it is essential that
this directory is only written to with the mkstemp(3), mkdtemp(3 ) this directory is only written to with the mkstemp(3), mkdtemp(3 )
and related calls. This directory is usually flushed at boot-up. and related calls. This directory is usually flushed at boot-up.
Also, files that are not accessed within a certain time are usua lly Also, files that are not accessed within a certain time are usua lly
automatically deleted. If applications find the environment automatically deleted. If applications find the environment
variable $TMPDIR set they should prefer using the directory variable $TMPDIR set they should prefer using the directory
specified in it over directly referencing /tmp (see environ(7) f specified in it over directly referencing /tmp (see environ(7) a
or nd
details). IEEE Std 1003.1[2] for details).
RUNTIME DATA RUNTIME DATA
/run /run
A "tmpfs" file system for system packages to place runtime data in. A "tmpfs" file system for system packages to place runtime data in.
This directory is flushed on boot, and generally writable for This directory is flushed on boot, and generally writable for
privileged programs only. Always writable. privileged programs only. Always writable.
/run/log /run/log
Runtime system logs. System components may place private logs in Runtime system logs. System components may place private logs in
this directory. Always writable, even when /var/log might not be this directory. Always writable, even when /var/log might not be
accessible yet. accessible yet.
/run/user /run/user
Contains per-user runtime directories, each usually individually Contains per-user runtime directories, each usually individually
mounted "tmpfs" instances. Always writable, flushed at each rebo ot mounted "tmpfs" instances. Always writable, flushed at each rebo ot
and when the user logs out. User code should not reference this and when the user logs out. User code should not reference this
directory directly, but via the $XDG_RUNTIME_DIR environment directory directly, but via the $XDG_RUNTIME_DIR environment
variable, as documented in the XDG Base Directory Specification[ 2]. variable, as documented in the XDG Base Directory Specification[ 3].
VENDOR-SUPPLIED OPERATING SYSTEM RESOURCES VENDOR-SUPPLIED OPERATING SYSTEM RESOURCES
/usr /usr
Vendor-supplied operating system resources. Usually read-only, b ut Vendor-supplied operating system resources. Usually read-only, b ut
this is not required. Possibly shared between multiple hosts. Th is this is not required. Possibly shared between multiple hosts. Th is
directory should not be modified by the administrator, except wh en directory should not be modified by the administrator, except wh en
installing or removing vendor-supplied packages. installing or removing vendor-supplied packages.
/usr/bin /usr/bin
Binaries and executables for user commands, that shall appear in Binaries and executables for user commands, that shall appear in
skipping to change at line 125 skipping to change at line 125
Static, private vendor data that is compatible with all Static, private vendor data that is compatible with all
architectures (though not necessarily architecture-independent). architectures (though not necessarily architecture-independent).
Note that this includes internal executables or other binaries t hat Note that this includes internal executables or other binaries t hat
are not regularly invoked from a shell. Such binaries may be for are not regularly invoked from a shell. Such binaries may be for
any architecture supported by the system. Do not place public any architecture supported by the system. Do not place public
libraries in this directory, use $libdir (see below), instead. libraries in this directory, use $libdir (see below), instead.
/usr/lib/arch-id /usr/lib/arch-id
Location for placing dynamic libraries, also called $libdir. The Location for placing dynamic libraries, also called $libdir. The
architecture identifier to use is defined on Multiarch Architect ure architecture identifier to use is defined on Multiarch Architect ure
Specifiers (Tuples)[3] list. Legacy locations of $libdir are Specifiers (Tuples)[4] list. Legacy locations of $libdir are
/usr/lib, /usr/lib64. This directory should not be used for /usr/lib, /usr/lib64. This directory should not be used for
package-specific data, unless this data is architecture-dependen t, package-specific data, unless this data is architecture-dependen t,
too. To query $libdir for the primary architecture of the system , too. To query $libdir for the primary architecture of the system ,
invoke: invoke:
# pkg-config --variable=libdir systemd # pkg-config --variable=libdir systemd
or or
# systemd-path system-library-arch # systemd-path system-library-arch
skipping to change at line 268 skipping to change at line 268
architectures whose ABI places the dynamic loader in this path. architectures whose ABI places the dynamic loader in this path.
/var/run /var/run
This compatibility symlink points to /run, ensuring that program s This compatibility symlink points to /run, ensuring that program s
referencing this legacy path correctly find their runtime data. referencing this legacy path correctly find their runtime data.
HOME DIRECTORY HOME DIRECTORY
User applications may want to place files and directories in the use r's User applications may want to place files and directories in the use r's
home directory. They should follow the following basic structure. No te home directory. They should follow the following basic structure. No te
that some of these directories are also standardized (though more that some of these directories are also standardized (though more
weakly) by the XDG Base Directory Specification[2]. Additional weakly) by the XDG Base Directory Specification[3]. Additional
locations for high-level user resources are defined by locations for high-level user resources are defined by
xdg-user-dirs[4]. xdg-user-dirs[5].
~/.cache ~/.cache
Persistent user cache data. User programs may place non-essentia l Persistent user cache data. User programs may place non-essentia l
data in this directory. Flushing this directory should have no data in this directory. Flushing this directory should have no
effect on operation of programs, except for increased runtimes effect on operation of programs, except for increased runtimes
necessary to rebuild these caches. If an application finds necessary to rebuild these caches. If an application finds
$XDG_CACHE_HOME set is should use the directory specified in it $XDG_CACHE_HOME set is should use the directory specified in it
instead of this directory. instead of this directory.
~/.config ~/.config
skipping to change at line 304 skipping to change at line 304
be problematic if the home directory is shared between multiple be problematic if the home directory is shared between multiple
hosts with different architectures. hosts with different architectures.
~/.local/lib ~/.local/lib
Static, private vendor data that is compatible with all Static, private vendor data that is compatible with all
architectures. architectures.
~/.local/lib/arch-id ~/.local/lib/arch-id
Location for placing public dynamic libraries. The architecture Location for placing public dynamic libraries. The architecture
identifier to use, is defined on Multiarch Architecture Specifie rs identifier to use, is defined on Multiarch Architecture Specifie rs
(Tuples)[3] list. (Tuples)[4] list.
~/.local/share ~/.local/share
Resources shared between multiple packages, such as fonts or Resources shared between multiple packages, such as fonts or
artwork. Usually, the precise location and format of files store d artwork. Usually, the precise location and format of files store d
below this directory is subject to specifications that ensure below this directory is subject to specifications that ensure
interoperability. If an application finds $XDG_DATA_HOME set is interoperability. If an application finds $XDG_DATA_HOME set is
should use the directory specified in it instead of this directo ry. should use the directory specified in it instead of this directo ry.
UNPRIVILEGED WRITE ACCESS UNPRIVILEGED WRITE ACCESS
Unprivileged processes generally lack write access to most of the Unprivileged processes generally lack write access to most of the
skipping to change at line 605 skipping to change at line 605
└─────────────────────────┴────────────────────────────┘ └─────────────────────────┴────────────────────────────┘
SEE ALSO SEE ALSO
systemd(1), hier(7), systemd-path(1), systemd-efi-boot-generator(8), systemd(1), hier(7), systemd-path(1), systemd-efi-boot-generator(8),
sysctl.d(5), tmpfiles.d(5), pkg-config(1), systemd.unit(5) sysctl.d(5), tmpfiles.d(5), pkg-config(1), systemd.unit(5)
NOTES NOTES
1. File System Hierarchy 1. File System Hierarchy
http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html
2. XDG Base Directory Specification 2. IEEE Std 1003.1
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap
08.html#tag_08_03
3. XDG Base Directory Specification
http://standards.freedesktop.org/basedir-spec/basedir-spec-lates t.html http://standards.freedesktop.org/basedir-spec/basedir-spec-lates t.html
3. Multiarch Architecture Specifiers (Tuples) 4. Multiarch Architecture Specifiers (Tuples)
https://wiki.debian.org/Multiarch/Tuples https://wiki.debian.org/Multiarch/Tuples
4. xdg-user-dirs 5. xdg-user-dirs
http://www.freedesktop.org/wiki/Software/xdg-user-dirs/ http://www.freedesktop.org/wiki/Software/xdg-user-dirs/
systemd 215 FILE-HIERARCHY (7) systemd 216 FILE-HIERARCHY (7)
 End of changes. 10 change blocks. 
11 lines changed or deleted 15 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/