即使命令在进行中被中断/取消,bzip2也会创建输出文件吗?

时间:2018-04-05 07:38:41

标签: unix compression bzip2

我通过SSH登录到远程计算机并使用以下方法压缩单个90GB XML文件:

bzip2 myfile.xml

我的连接超时,所以我不确定bzip2是否有效,但我最终得到了一个输出文件 myfile.xml.bz2

当bzip2命令无法完全执行时,是否保存输出文件?

1 个答案:

答案 0 :(得分:1)

更合适的问题是它是否会自行清理。

BZip2以相对较小的块压缩数据,并在进入下一个块之前输出每个块。这个allows it to run在内存受限的系统上仍然处理实际数量的数据(它需要少于8MB的RAM才能处理你的90 GB XML)。

如果检查源文件bzip2.c,您可以注意到它在函数void cleanUpAndFail(Int32 ec)中进行了清理,假设输入文件仍然存在。当然,如果该程序在可能完成之前就已经被杀死,那么它就无法做到。

在您的情况下,如果myfile.xml仍然存在,并且您没有明确告诉bzip2保留它(似乎您没有),那么bzip2可能在完成之前被杀死。如果它消失了,那么很可能没有问题就完成了。您可以使用bzip2 -tv对其进行完整性测试。