Принятый ответ (удалить файлы и выполнитьdaemon-reload
)мне не помогло -вместо этого я смог удалить таймер, используя systemd --user stop unitfile
; однако это может отличаться тем, что я уже использовал файл модуля.
Поскольку мой вопрос «Systemd как at
замена» был помечен как «точная копия», я удалю его и опубликую содержание ниже.
Я хотел бы использовать systemd как at
. Я создал юнит-файл в ~/.config/systemd/user/say@.service
, который запускает сценарий оболочки (, передавая "%I" ), но у меня возникли проблемы с его планированием. Если я использую systemd-run --user --unit say@'test message' --on-calendar='13:54'
, он сохраняет активным таймер для запуска завтра, а не удаляет его после запуска.
Как указать systemd запускать юнит-файл ровно один раз в определенное время сегодня? Я хотел бы решение, которое также автоматически очищает переходный таймер, поэтому мне не нужно systemd --user stop say@'test message'
после этого.
Ответ :Пришлось указать полную дату. Итак -... --on-calendar='2018-04-16 13:54:00'
. Это, кажется, очищает после себя должным образом.
С помощью sort
вы можете использовать клавишу формы F.C
, чтобы указать позицию символа в пределах поля. Так например
$ printf '%s\n' */ | sort -k1.2
yalberto/
mreynolds/
lrodriguez/
Обратите внимание, что это не удастся, если любое из имен каталогов содержит новую строку.
Это можно обойти с помощью GNU sort
, работая с записями с разделителями NUL -вместо:
printf '%s\0' */ | sort -zk1.2 | tr '\0' '\n'
Также обратите внимание, что расширение */
также включает символические ссылки на каталоги.
Сzsh
:
print -rC1 -- *(N/oe['REPLY=${REPLY#?}'])
print -rC1
печатает свои аргументы r
aw в1
C
колонке *(qualifiers)
:глобус с квалификаторами глобус N
:N
ullglob :расширяется до нуля, если совпадений нет /
:выбирать только файлы типа каталогoe[expression]
:o
упорядочить список на основе результата e
выражения (значения $REPLY
, изначально содержащего имя файла после того, как оно было обработано выражением)REPLY=${REPLY#?}
:удалить первый символ из имени файла. Вы также можете добавить первый символ в конце, например REPLY=${REPLY#?}.$REPLY[1]
, чтобы asmith
, bsmith
, csmith
сортировались в этом порядке, а не случайным образом.