Тильда является расширением, -специфичным для оболочки, но директивы, указанные в юнит-файле, не запускаются с помощью оболочки. Вам нужно будет заменить ~
абсолютным путем к каталогу. Systemd ищет рабочий каталог с именем ~/IPSDevice/JAI1
буквально.
Другой вариант:
for d in AST*/; do cp ING_30.tif "$d"; done
Это позволит перебрать все каталоги (, указанные в конце /
), которые соответствуют шаблону глобуса AST*
, и скопировать туда файл.
Это безопаснее, чем использование xargs
, если имена ваших каталогов могут содержать пробелы или другие забавные символы. (см. ответы на этот вопрос для получения дополнительной информации ), если у вас нет версии GNU который принимает параметр -0
и, кроме того, имеет средства для подачи имен каталогов в виде строк с завершением NULL -в xargs
.
Решение найдено:
echo AST* | xargs -n 1 cp ING_30.tif
Это скопировало мой файл .tif
во все мои папки AST_
, не удаляя другие файлы, которые были в папках.