焦油有进展但没有压缩

puk*_*puk 3 bash tar progress ubuntu

关于如何创建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
Run Code Online (Sandbox Code Playgroud)

但是,如果我像这样在没有压缩的情况下对文件进行焦油处理,我如何查看进度

tar -cvf output.tar folder/to/tar
Run Code Online (Sandbox Code Playgroud)

dav*_*dgo 7

虽然公认的解决方案有效,但它只是有点滥用流程。有一个更简单,更优雅/正确的解决方案 -

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

tar 代表磁带存档 - 旨在处理流。“cf”中的“f”告诉 tar 专门创建一个文件 - 而不是这样做并指定一个“-”来使用 stdout 作为这个文件。

  • 感谢分享,大卫戈。请注意,两个文件夹路径(当前显示为 /folder 和 /folder-with-big-files)需要匹配,如@Kevin Rockwell 的回答所示。 (2认同)