Используйте массивы.
Если вам не нужно обрабатывать новые строки в именах файлов, то вы можете обойтись
mapfile -t ABC_FILES < <(find -L some/dir -name \*.abc | sort)
mapfile -t XYZ_FILES < <(find -L other/dir -name \*.xyz | sort)
then
./program --abc-files "${ABC_FILES[@]}" --xyz-files "${XYZ_FILES[@]}"
Если вам do нужно обрабатывать новые строки в именах файлов, и у вас bash >= 4. 4, вы можете использовать -print0
и -d ''
для нулевой терминации имен во время построения массива:
mapfile -td '' ABC_FILES < <(find -L some/dir -name \*.abc -print0 | sort -z)
(и аналогично для XYZ_FILES
). Если у вас нет более нового bash, то вы можете использовать цикл чтения с нулевой терминацией для добавления имен файлов в массивы, например,
ABC_FILES=()
while IFS= read -rd '' f; do ABC_FILES+=( "$f" ); done < <(find -L some/dir -name \*.abc -print0 | sort -z)
Нет. Достаточно просто добавить его. Но если вы добавляете правила в файлы, вам нужно выполнить commit
.
Вы можете проверить пользовательские правила, так как они называются:
ufw status
Вы также можете добавить подробный
для некоторых подробностей:
ufw status verbose
Или нумерованный
, чтобы знать, какое правило удалить с помощью удалить
. Синтаксис для этого таков:
delete RULE|NUM