Список источников Rsync для списка назначения

Попробуйте следующее:

ip -o link show

Список доступных портов для каждой сетевой карты

lspci | grep Eth | awk -F ':' '{print $NF}' | uniq -c

      2  Intel Corporation Ethernet Controller 10-Gigabit X540-AT2 (rev 01)
      4  Intel Corporation I350 Gigabit Network Connection (rev 01)
1
04.08.2020, 00:47
1 ответ

В Bash, если у вас уже есть пара упорядоченных массивов с соответствием между элементами от одного -до -one, использование цикла для выполнения команды для каждой пары из них является простым:

for i in "${!sources[@]}"; do
    echo rsync -av -- "${sources[i]}" "${destinations[i]}"
done

(Удалите echoдля фактического копирования ваших файлов, когда вы будете довольны результатом, который вы видите ).

Префикс !, применяемый к переменной-массиву, расширяет ее до списка ее индексов.

Я опустил параметр -rв rsync, потому что он подразумевается -a.

Списки путей, хранящиеся в текстовых файлах, по одному на строку (, предполагая, конечно, что ваши пути к файлам не могут содержать никаких символов новой строки ), могут быть прочитаны в массивы с помощью:

mapfile -t surces <source.txt
mapfile -t destinations <destination.txt

mapfile(или эквивалентныйreadarray)стандартный ввод разбивается на новые строки (или разделитель, явно указанный с помощью опции -d). Опция -tпредписывает удалить сам разделитель, который в противном случае был бы сохранен как последний символ каждого элемента массива.

0
18.03.2021, 23:15

Теги

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