Я использовал эту однострочную команду, которую нашел в другом посте, и она прекрасно работает для одной папки за раз. Это команда:
tar -cf - /opt/folder1 | pv -s $(du -sb /opt/folder1 | awk '{print $1}') | gzip > archive.tar.gz
Как это можно изменить для одновременной работы с несколькими файлами / папками и получения общего прогресса, а не для запуска одной и той же команды для каждой папки / файла. Вот пример использования:
У меня есть файлы /opt /folder1, /opt /folder2 и /opt/folder3/*.db. Все они могут быть объединены как в одну переменную, как это.
filestobackup=(
/opt/folder1
/opt/folder2
/opt/folder3/*.db
)
Это не работает:
tar -cf - "${filestobackup[@]}" | pv -s $(du -sb "${filestobackup[@]}" | awk '{print $1}') | gzip > archive.tar.gz