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

691
puk

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

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

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

tar -cvf output.tar folder/to/tar 
1

2 ответа на вопрос

3
davidgo

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

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

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

Спасибо, что поделился этим, Давидго. Обратите внимание, что два пути к папкам (в настоящее время отображаются как / folder и / folder-with-big-files) должны совпадать, как в ответе @Kevin Rockwell. Miles Wolbe 6 лет назад 0
2
Kevin Rockwell

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

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