Unix 即使命令在执行过程中被中断/取消,bzip2是否也会创建输出文件?

Unix 即使命令在执行过程中被中断/取消,bzip2是否也会创建输出文件?,unix,compression,bzip2,Unix,Compression,Bzip2,我通过SSH登录到一台远程计算机,并使用以下方式压缩一个90GB XML文件: bzip2 myfile.xml 我的连接超时了,所以我不确定bzip2是否工作,但我最终得到了一个输出文件myfile.xml.bz2 当bzip2命令无法完全执行时,它是否保存输出文件?一个更合适的问题是它是否会在执行后进行清理 BZip2将数据压缩到相对较小的块中,并在进入下一个块之前输出每个块。它在内存有限的系统上运行,并且仍然可以处理实际数量的数据(即使处理您的90GB XML,它也需要不到8MB的RAM

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

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


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

一个更合适的问题是它是否会在执行后进行清理

BZip2将数据压缩到相对较小的块中,并在进入下一个块之前输出每个块。它在内存有限的系统上运行,并且仍然可以处理实际数量的数据(即使处理您的90GB XML,它也需要不到8MB的RAM)

如果您检查源文件
bzip2.c
,您会注意到它确实在函数
void cleanUpAndFail(Int32 ec)
中进行了清理,假设输入文件仍然存在。当然,如果程序在运行到完成之前就被杀死了,它将无法做到这一点


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