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

systemd-escape - اسکیپ کردن رشته‌ها برای استفاده در نام واحدهای سیستم‌دی

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

systemd-escape می‌تواند برای اسکیپ کردن رشته‌ها جهت گنجاندن در نام واحدهای سیستم‌دی استفاده شود. این دستور می‌تواند برای اسکیپ کردن و همچنین لغو اسکیپ (unescape) رشته‌ها به کار رود.

این دستور هر تعداد رشته را در خط فرمان می‌پذیرد و آن‌ها را به صورت جداگانه، یکی پس از دیگری پردازش می‌کند. خروجی آن‌ها با فاصله جدا شده و در خروجی استاندارد (stdout) چاپ می‌شود.

به‌طور پیش‌فرض، این دستور رشته‌های دریافت‌شده را اسکیپ می‌کند، مگر اینکه --unescape ارسال شود که منجر به اعمال عملیات معکوس می‌گردد. اگر --mangle داده شود، در عوض حالت ویژه‌ای از اسکیپ کردن اعمال می‌شود که فرض می‌کند رشته از قبل اسکیپ شده است اما هر آنچه را که آشکارا اسکیپ‌نشده به نظر می‌رسد اسکیپ می‌کند.

برای جزئیات بیشتر درباره الگوریتم‌های اسکیپ کردن و لغو اسکیپ، به بخش مربوطه در systemd.unit(5) مراجعه کنید.

گزینه‌های زیر پشتیبانی می‌شوند:

--suffix=

پسوند نوع واحد مشخص‌شده را به انتهای رشته اسکیپ‌شده اضافه می‌کند. یکی از انواع واحدهای پشتیبانی‌شده توسط سیستم‌دی را می‌پذیرد، مانند "service" یا "mount". نمی‌تواند همراه با --template=, --unescape یا --mangle استفاده شود.

افزوده‌شده در نسخه 216.

--template=

رشته‌های اسکیپ‌شده را در یک قالب (تمپلیت) نام واحد وارد می‌کند. یک قالب نام واحد مانند foobar@.service را می‌پذیرد. همراه با --unescape, انتظار نام‌های واحد نمونه‌سازی‌شده (instantiated) را برای این قالب دارد و فقط بخش نمونه (instance) را استخراج کرده و از حالت اسکیپ خارج می‌کند. نمی‌تواند همراه با --suffix=, --instance یا --mangle استفاده شود.

افزوده‌شده در نسخه 216.

--path, -p

هنگام اسکیپ کردن یا لغو اسکیپ یک رشته، فرض می‌کند که رشته به یک مسیر فایل‌سیستم اشاره دارد. این کار مسیر را ساده‌سازی می‌کند (کاراکترهای "/" ابتدایی، انتهایی و تکراری حذف می‌شوند، اجزای مسیر بی‌اثر "." حذف می‌شوند، و برای مسیرهای مطلق، اجزای ".." ابتدایی حذف می‌گردند). پس از ساده‌سازی، مسیر نباید شامل ".." باشد.

این گزینه به ویژه برای تولید رشته‌های مناسب جهت لغو اسکیپ با مشخص‌کننده "%f" در فایل‌های واحد مفید است؛ systemd.unit(5) را ببینید.

افزوده‌شده در نسخه 216.

--unescape, -u

به جای اسکیپ کردن رشته‌های مشخص‌شده، اسکیپ آن‌ها را لغو کرده و عملیات را معکوس می‌کند. نمی‌تواند همراه با --suffix= یا --mangle استفاده شود.

افزوده‌شده در نسخه 216.

--mangle, -m

مانند --escape است، اما فقط کاراکترهایی را اسکیپ می‌کند که مشخصاً هنوز اسکیپ نشده‌اند و در صورت امکان به طور خودکار پسوند نوع واحد مناسب را به انتهای رشته اضافه می‌کند. نمی‌تواند همراه با --suffix=, --template= یا --unescape استفاده شود.

افزوده‌شده در نسخه 216.

--instance

همراه با --unescape, تنها بخش نمونه (instance) از یک قالب نام واحد نمونه‌سازی‌شده را از حالت اسکیپ خارج کرده و چاپ می‌کند. برای قالب‌های نمونه‌سازی‌نشده مانند ssh@.service یا نام‌های غیرقالبی مانند ssh.service منجر به خطا می‌شود. باید همراه با --unescape استفاده شود و نمی‌تواند همراه با --template به کار رود.

افزوده‌شده در نسخه 240.

-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

برای استخراج بخش نمونه از یک واحد نمونه‌سازی‌شده:

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

برای استخراج بخش نمونه از یک نمونه از قالبی خاص:

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

در صورت موفقیت، 0 بازگردانده می‌شود، در غیر این صورت یک کد خطای غیر صفر برگردانده خواهد شد.

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

systemd 261.2