SYSTEMD-ESCAPE(1)

NAME
systemd-escape - 转义与还原单元名称中的特殊字符

SYNOPSIS

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

描述

systemd-escape 可用于 转义单元名称中的特殊字符， 也可用于还原操作。

可以在命令行上指定任意数量的字符串， 表示依次分别处理它们。 处理结果将使用空格分隔。

默认的行为是转义操作， 但若使用了 --unescape 选项， 则表示反向的还原操作。如果使用了 --mangle 选项， 则会使用一种特殊的转义规则， 也就是假定字符串已经经过了转义， 仅转义那些显而易见必须转义的字符。

选项

能够识别的命令行选项如下：

--suffix=
    在输出结果尾部添加一个单元类型后缀。 必须是 ".service" 或 ".mount" 这样实际有效的后缀。不能与 --template=, --unescape , --mangle 选项一起使用。

--template=
    将转义之后的结果插入一个单元名称模版。 接收一个类似 foobar@.service 这样的模版名。 不能与 --suffix=, --unescape, --mangle 选项一起使用。

--path, -p
    在转义或还原字符串时， 假定其是一个文件系统路径。 这将会对字符串头的 "/" 字符进行特殊处理。

--unescape
    将已经转义过的字符串还原。 不能与 --suffix=, --template=, --mangle 选项一起使用。

--mangle
    与 --escape 类似， 但是仅转义那些显而易见必须转义的字符， 并且允许自动添加适当的单元类型后缀。 不能与 --suffix=, --template=, --unescape 选项一起使用。

-h, --help
    显示简短的帮助信息并退出。

--version
    显示简短的版本信息并退出。

例子

转义一个字符串

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

还原一个字符串

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

为一个路径生成对应的单元名

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

从三个字符串派生三个对应的实例单元名

    $ 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

退出状态

返回值为 0 表示成功， 非零返回值表示失败代码。

参见

systemd(1), systemctl(1)