![Tar 有进度但是没有压缩](https://linux22.com/image/1565124/Tar%20%E6%9C%89%E8%BF%9B%E5%BA%A6%E4%BD%86%E6%98%AF%E6%B2%A1%E6%9C%89%E5%8E%8B%E7%BC%A9.png)
关于如何创建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
答案1
虽然可接受的解决方案有效,但这只是对流程的滥用。有一个更简单、更优雅/正确的解决方案 -
tar -c /folder-with-big-files | pv -s $(du -sb /folder-with-big-files | awk '{print $1}') > bigfiles.tar
tar 代表 Tape ARchive - 旨在处理流。“cf”中的“f”告诉 tar 专门创建一个文件 - 而不是执行此操作并指定“-”以使用 stdout 作为此文件。
答案2
不要将输出通过 gzip 进行压缩,而是输出到文件:
tar cf - /folder-with-big-files -P | pv -s $(du -sb /folder-with-big-files | awk '{print $1}') > big-files.tar