systemd-escape(1) — Linux manual page


SYSTEMD-ESCAPE(1)            systemd-escape            SYSTEMD-ESCAPE(1)

NAME         top

       systemd-escape - Escape strings for usage in systemd unit names

SYNOPSIS         top

       systemd-escape [OPTIONS...] [STRING...]

DESCRIPTION         top

       systemd-escape may be used to escape strings for inclusion in
       systemd unit names. The command may be used to escape and to undo
       escaping of strings.

       The command takes any number of strings on the command line, and
       will process them individually, one after another. It will output
       them separated by spaces to stdout.

       By default, this command will escape the strings passed, unless
       --unescape is passed which results in the inverse operation being
       applied. If --mangle is given, a special mode of escaping is
       applied instead, which assumes the string is already escaped but
       will escape everything that appears obviously non-escaped.

       For details on the escaping and unescaping algorithms see the
       relevant section in systemd.unit(5).

OPTIONS         top

       The following options are understood:

           Appends the specified unit type suffix to the escaped string.
           Takes one of the unit types supported by systemd, such as
           "service" or "mount". May not be used in conjunction with
           --template=, --unescape or --mangle.

           Added in version 216.

           Inserts the escaped strings in a unit name template. Takes a
           unit name template such as foobar@.service. With --unescape,
           expects instantiated unit names for this template and
           extracts and unescapes just the instance part. May not be
           used in conjunction with --suffix=, --instance or --mangle.

           Added in version 216.

       --path, -p
           When escaping or unescaping a string, assume it refers to a
           file system path. This simplifies the path (leading,
           trailing, and duplicate "/" characters are removed, no-op
           path "."  components are removed, and for absolute paths,
           leading ".."  components are removed). After the
           simplification, the path must not contain "..".

           This is particularly useful for generating strings suitable
           for unescaping with the "%f" specifier in unit files, see

           Added in version 216.

       --unescape, -u
           Instead of escaping the specified strings, undo the escaping,
           reversing the operation. May not be used in conjunction with
           --suffix= or --mangle.

           Added in version 216.

       --mangle, -m
           Like --escape, but only escape characters that are obviously
           not escaped yet, and possibly automatically append an
           appropriate unit type suffix to the string. May not be used
           in conjunction with --suffix=, --template= or --unescape.

           Added in version 216.

           With --unescape, unescape and print only the instance part of
           an instantiated unit name template. Results in an error for
           an uninstantiated template like ssh@.service or a
           non-template name like ssh.service. Must be used in
           conjunction with --unescape and may not be used in
           conjunction with --template.

           Added in version 240.

       -h, --help
           Print a short help text and exit.

           Print a short version string and exit.

EXAMPLES         top

       To escape a single string:

           $ systemd-escape 'Hallöchen, Meister'

       To undo escaping on a single string:

           $ systemd-escape -u 'Hall\xc3\xb6chen\x2c\x20Meister'
           Hallöchen, Meister

       To generate the mount unit for a path:

           $ systemd-escape -p --suffix=mount "/tmp//waldi/foobar/"

       To generate instance names of three strings:

           $ systemd-escape --template=systemd-nspawn@.service 'My Container 1' 'containerb' 'container/III'
           systemd-nspawn@My\x20Container\x201.service systemd-nspawn@containerb.service systemd-nspawn@container-III.service

       To extract the instance part of an instantiated unit:

           $ systemd-escape -u --instance 'systemd-nspawn@My\x20Container\x201.service'
           My Container 1

       To extract the instance part of an instance of a particular

           $ systemd-escape -u --template=systemd-nspawn@.service 'systemd-nspawn@My\x20Container\x201.service'
           My Container 1

EXIT STATUS         top

       On success, 0 is returned, a non-zero failure code otherwise.

SEE ALSO         top

       systemd(1), systemd.unit(5), systemctl(1)

COLOPHON         top

       This page is part of the systemd (systemd system and service
       manager) project.  Information about the project can be found at
       ⟨⟩.  If you have
       a bug report for this manual page, see
       This page was obtained from the project's upstream Git repository
       ⟨⟩ on 2023-12-22.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2023-12-22.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to

systemd 255                                            SYSTEMD-ESCAPE(1)

Pages that refer to this page: systemd.unit(5)systemd.directives(7)systemd.index(7)