Копировать файл в несколько папок, но только при запуске с AST

Тильда является расширением, -специфичным для оболочки, но директивы, указанные в юнит-файле, не запускаются с помощью оболочки. Вам нужно будет заменить ~абсолютным путем к каталогу. Systemd ищет рабочий каталог с именем ~/IPSDevice/JAI1буквально.

0
12.09.2021, 20:01
2 ответа

Другой вариант:

for d in AST*/; do cp ING_30.tif "$d"; done

Это позволит перебрать все каталоги (, указанные в конце /), которые соответствуют шаблону глобуса AST*, и скопировать туда файл.

Это безопаснее, чем использование xargs, если имена ваших каталогов могут содержать пробелы или другие забавные символы. (см. ответы на этот вопрос для получения дополнительной информации ), если у вас нет версии GNU который принимает параметр -0и, кроме того, имеет средства для подачи имен каталогов в виде строк с завершением NULL -в xargs.

1
15.09.2021, 13:18

Решение найдено:

echo AST* | xargs -n 1 cp ING_30.tif

Это скопировало мой файл .tifво все мои папки AST_, не удаляя другие файлы, которые были в папках.

0
12.09.2021, 21:55

Теги

Похожие вопросы