Cur*_*ind 13 command-line gzip
是gzip原子的吗?
如果我gzip在 gzip 文件中间停止该过程会发生什么?
如果它不是原子的,并且我已经在一个gzip *.txt进程上按下了 Ctrl+C ,我该如何安全地恢复?
(我不仅好奇如何恢复,还好奇gzip具体是否是原子的。)
roa*_*ima 30
gzip 是原子的吗?
不会。它会创建一个压缩文件,然后删除未压缩的原始文件。
具体来说,它不会原位压缩文件,并且在压缩文件时有一段时间,
如果我在 gzip 文件的中间停止 gzip 进程会发生什么?
如果您gzip使用可捕获信号(例如SIGINTfrom Ctrl C)停止进程,它将清理部分创建的文件。否则,根据它停止的时间点,您最终可能会在未修改的原始文件旁边得到一个部分压缩的文件。
如果它不是原子的,如果我已经在 gzip *.txt 进程上按下了 Ctrl+C,我该如何安全地恢复?
您删除部分压缩版本(如果它仍然存在)并重新启动gzip.
Bar*_*mar 15
它不是原子的(Unix 文件系统 API 并没有真正提供任何方法来执行影响多个文件的原子操作),但它是故障安全的。压缩文件是一个新文件,它不会覆盖原始文件,并且在完成创建压缩文件之前不会删除原始文件(如果您没有足够的磁盘空间,这实际上可能会导致问题)两个文件)。
如果出现错误或您中断压缩,原始文件将保持不变。通常会删除部分压缩文件。
没有办法在中间恢复它,你只能从头开始。