конфигурация агрегата (Unit configuration)
STRING ESCAPING FOR INCLUSION IN UNIT NAMES
Sometimes it is useful to convert arbitrary strings into unit
names. To facilitate this, a method of string escaping is used,
in order to map strings containing arbitrary byte values (except
NUL
) into valid unit names and their restricted character set. A
common special case are unit names that reflect paths to objects
in the file system hierarchy. Example: a device unit
dev-sda.device refers to a device with the device node /dev/sda
in the file system.
The escaping algorithm operates as follows: given a string, any
"/" character is replaced by "-", and all other characters which
are not ASCII alphanumerics, ":", "_" or "." are replaced by
C-style "\x2d" escapes. In addition, "." is replaced with such a
C-style escape when it would appear as the first character in the
escaped string.
When the input qualifies as absolute file system path, this
algorithm is extended slightly: the path to the root directory
"/" is encoded as single dash "-". In addition, any leading,
trailing or duplicate "/" characters are removed from the string
before transformation. Example: /foo//bar/baz/ becomes
"foo-bar-baz".
This escaping is fully reversible, as long as it is known whether
the escaped string was a path (the unescaping results are
different for paths and non-path strings). The systemd-escape(1)
command may be used to apply and reverse escaping on arbitrary
strings. Use systemd-escape --path
to escape path strings, and
systemd-escape
without --path
otherwise.