Кто сказал, что нужно вообще файлы менять? ☺
find /etc/systemd/service/ -maxdepth 1 -name 'myapp.*.service' | while read -r i do printf '[Service]\nUser=%s\n' 'Bar' > ${i}.d/change-user.conf done
Таким образом несколько проще получить определение ванильного сервиса.
rm -- /etc/systemd/service/myapp.*.service.d/change-user.conf
Сделать все это одним файлом , применимым ко всей группе сервисов, — это, конечно, простое упражнение по использованию жестких ссылок.
install -d /etc/systemd/temp printf '[Service]\nUser=%s\n' 'Bar' > /etc/systemd/temp/change-user.conf find /etc/systemd/service/ -maxdepth 1 -name 'myapp.*.service' | while read -r i do ln /etc/systemd/temp/change-user.conf ${i}.d/change-user.conf done
Это, конечно, официальный способ сделать такого рода вещи с пакетом -, поставляемым и во время выполнения -, сгенерированными модулями, кроме того. Вы должны , а не изменять такие юнит-файлы.
systemd.unit
. справочные страницы systemd. freedesktop.org. Вместо переменной можно использовать присваивание массива.
shopt -s nullglob ##: just in case there is non match for the glob.
glob=(*2020_04_03_{06..18}.jpg) ##: This will expand the glob * and brace expansion.
/bin/ls -la /mnt/drive1/images/*/*/"${glob[@]}"
Это должно работать для вашего примера кода.
Проблема возникнет, когда вы решите заменить числа внутри раскрытия фигурной скобки на переменную, упомянутую @kusalananda, о последовательности раскрытия.
Добавьте параметр оболочки failglob
, если вы хотите увидеть ошибку и выйти с не -нулем, если нет подходящего шаблона.