Как запросить ввод пользователя и передать его в файл во время установки пакета Debian?

Чтобы перезаписать каждый файл во всей иерархии каталогов содержимым файлаdata:

find. -type f ! -path './data' -exec sh -c 'tee "$@" /dev/null' sh {} +

Если вы хотите добавить содержимое data, используйте tee -aвыше.

! -path./dataпозволяет избежать изменения файла, из которого мы читаем.

Дочерняя оболочка получит набор путей из findи будет использовать teeдля распространения содержимого dataв эти файлы.

Чтобы использовать catвместоtee:

find. -type f ! -path './data' -exec sh -c '
    for pathname do
        cat data >"$pathname"
    done' sh {} +

Здесь, чтобы добавить данные, используйте >>вместо >.

Запустите это в безопасном каталоге. Запуск его в вашем домашнем каталоге уничтожит все ваши файлы. Чтобы восстановиться после этого, вам нужно будет восстановить из последней резервной копии. Никогда не запускайте команды, которые вы скопировали и вставили из Интернета, не зная, что они делают или могут делать.

Связанные:

0
12.08.2020, 10:18
1 ответ

См. Как передать параметры программе установки Debian (.deb)для получения информации о том, как задавать вопросы во время установки пакета.

Когда у вас есть нужные значения, передать их в файл .serviceможно разными способами. Один из них — записать значения в папку -в файле, обычно/etc/systemd/system/yourservice.d/parameters.conf(yourserviceдолжен соответствовать вашему сервису; parametersможет быть чем угодно, значимая часть — расширение .conf). Такие вбросы -в файлы читаются после того, как юнит-файл и их содержимое добавляются в него; см. подробности вsystemd.unit(или man systemd.unitв вашей системе ).

1
18.03.2021, 23:13

Теги

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