systemd: Konvertiert den Pfad in das Systemd-Einheitennamenformat

10

Wie konvertiere ich beliebige Pfade in das systemdEinheitendateinamenformat?

Wie würde ich beispielsweise einen Pfad wie folgt konvertieren /media/backup, media-backupdamit ich den Automounter über Folgendes stoppen kann:

systemctl stop media-backup.automount

Die Lösung sollte Sonderzeichen entgehen.

Tom Hale
quelle
Gibt es eine Liste dieser beliebigen Pfade oder möchten Sie jeden Pfad im System konvertieren? Was hast du versucht zu tun?
mrc02_kr

Antworten:

23

Sie sollten Folgendes verwenden systemd-escape, das explizit dafür ausgelegt ist:

systemd-escape -p --suffix=automount /media/backup

-pgibt an, dass Sie einen Weg sind entkommen, und Griffe /, .und in ..geeigneter Weise . Sonderzeichen werden ebenfalls korrekt behandelt. So würde Ihr Befehl werden

systemctl stop "$(systemd-escape -p --suffix=automount /media/backup)"

Die Escape-Regeln sind in der systemd.unitManpage beschrieben.

Stephen Kitt
quelle
Dies sollte perfekt funktionieren. Angesichts der Tatsache, dass dies umount -lgefährlich ist , bin ich überrascht zu sehen, dass systemdLazy den Mountpoint mit diesem Befehl aufhebt .
Tom Hale