Tar 操作未按预期工作

Tar 操作未按预期工作

我有一个巨大的未压缩 tar 文件(1 tb),我想检查它,因此我尝试提取它以查看一切是否顺利。由于这需要很长时间,我想在提取时在屏幕上打印一些信息。太糟糕了建议的检查点行动这里不按预期工作。如果尝试这个命令:

tar -xf big_fat_backup.tar --checkpoint=10000 --checkpoint-action=ttyout='%{%Y-%m-%d %H:%M:%S}t (%d sec): #%u, %T%*\r'

字符串中的元字符不会扩展(%u 除外),并且我有以下输出:

%{%Y-%m-%d %H:%M:%S}t (%d sec): #10000, %T%*

我只是从手册上复制过来的,所以我做错了什么?

额外问题:如果我使用 -W 开关创建存档并且没有打印任何错误,我是否应该确保存档写入正确?

答案1

这些元字符--checkpoint-action1.28版本引入,一周前发布。

tar根据需要获取大致进度状态的一种方法是检查进程在其输入文件中的位置。您可以看到其中lsof -p12341234 是进程的 PID tar。在 Linux 上,您可以pos:检查/proc/1234/fdinfo/3.

如果您想在屏幕上显示进度报告,您可以通过以下方式过滤存档pv

<big_fat_backup.tar pv -bt | tar -xf -

如果要确保存档正确写入,请检查tar命令的退出状态。这也适用于任何其他命令:退出状态 0 表示成功,非零值表示失败。

相关内容