grep
по отдельности и замена мне не кажутся полезной комбинацией. Как вы относитесь к sed
?
$ ls *pdf
Guide to Iceland _ Chen-ping Wang itinerary T-987654987.pdf
Guide to Iceland _ T-123654875 Chen-ping Wang itinerary.pdf
А затем небольшой цикл for вbash
:
$ for i in *pdf; do mv "$i" "$( echo $i | sed -r 's/^(.*)(T-[0-9]{9})(.+)$/\2 - \1\3/' )"; done
Это перебирает все PDF-файлы в текущем каталоге; сохраняет свое имя в $i
для каждой итерации, выводит содержимое через sed (и использует его вывод в качестве целиmv
). sed
разбивает имя файла -на три части и переставляет их. Я рекомендую заменить mv
на echo mv
для тестирования:)
Что дает нам:
$ ls *pdf
T-123654875 - Guide to Iceland _ Chen-ping Wang itinerary.pdf
T-987654987 - Guide to Iceland _ Chen-ping Wang itinerary.pdf
Чтобы ответить на исходный вопрос:
daemon-reload
просто сообщает systemd
повторно -прочитать его конфигурацию.
Обратите внимание, что включение службы означает, что служба запускается как зависимость от других устройств. Предполагая, что вашей целью по умолчанию является несколько пользователей -, вы можете попробовать systemctl isolate multi-user.target
; в моем понимании он должен запускать все включенные блоки, которые зависят от мульти -пользователя и останавливать все остальные.
Если это не сработает, простой сценарий оболочки, использующий вывод systemctl list-units -t service
, должен сработать. РЕДАКТИРОВАТЬ:list-units
не сообщает о включенном/отключенном; вместо этого вы можете использовать systemctl status -t service \*
.
Наконец, возможно, вы действительно этого хотите:
systemctl enable --now SERVICE
systemctl disable --now SERVICE
--now
запускает/останавливает службу одновременно с ее включением/отключением. Конечно, вы также можете systemctl start SERVICE
и systemctl stop SERVICE
по отдельности.