Тар с прогрессом, но без сжатия

Есть много ответов о том, как создать tar.gz файл с обновлениями прогресса (т.е. этот ответ, скопированный ниже)

tar cf - /folder-with-big-files -P | pv -s $(du -sb /folder-with-big-files | awk '{print $1}') | gzip > big-files.tar.gz

Но как я вижу прогресс, если я заархивирую файлы без сжатия, вот так

tar -cvf output.tar folder/to/tar

2 ответа

Решение

В то время как принятое решение работает, это всего лишь злоупотребление процессом. Существует более простое и элегантное / правильное решение -

tar -c /folder | pv -s $(du -sb /folder-with-big-files | awk '{print $1}') > bigfiles.tar

tar обозначает Tape ARchive - и предназначен для работы с потоками. "f" в "cf" указывает tar специально создавать файл - вместо этого сделайте это и укажите "-" для использования stdout в качестве этого файла.

Вместо вывода вывода через gzip выведите в файл: tar cf - /folder-with-big-files -P | pv -s $(du -sb /folder-with-big-files | awk '{print $1}') > big-files.tar

Другие вопросы по тегам