systemd:将路径转换为 ​​systemd 单位名称格式

Tom*_*ale 12 systemd

如何将任意路径转换为systemd单位文件名格式?

例如,我将如何转换类似的路径/media/backupmedia-backup以便我可以通过以下方式停止自动安装程序:

systemctl stop media-backup.automount
Run Code Online (Sandbox Code Playgroud)

解决方案应该转义特殊字符。

Ste*_*itt 25

您应该使用systemd-escape专门为此设计的:

systemd-escape -p --suffix=automount /media/backup
Run Code Online (Sandbox Code Playgroud)

-p指定您正在转义路径/...适当地处理, 。特殊字符也被正确处理。这样你的命令就会变成

systemctl stop "$(systemd-escape -p --suffix=automount /media/backup)"
Run Code Online (Sandbox Code Playgroud)

转义规则在systemd.unit联机帮助页中描述。