Compression `7z`是否可以只压缩文件的更新部分,而不是压缩完整的更新文件?

Compression `7z`是否可以只压缩文件的更新部分,而不是压缩完整的更新文件?,compression,7zip,Compression,7zip,首先,我创建了一个1GB的文件并将其传输到/target文件夹中,然后使用7z a targeter.7z target压缩该文件 稍后,我将hello字符串附加到1GB文件的尾部。当我使用更新选项7z u target.7z target重新压缩/target文件夹时;我注意到更新的文件被重新压缩,而不是只压缩更新的部分 [Q] 我如何强制7z只压缩文件的更新部分,而不是压缩完整的更新文件?是否有其他压缩方法来实现此目标 例如: 在这里,您可以看到,我在文件后面附加了“hello”字符串,并没

首先,我创建了一个1GB的文件并将其传输到/target文件夹中,然后使用7z a targeter.7z target压缩该文件

稍后,我将hello字符串附加到1GB文件的尾部。当我使用更新选项7z u target.7z target重新压缩/target文件夹时;我注意到更新的文件被重新压缩,而不是只压缩更新的部分

[Q] 我如何强制7z只压缩文件的更新部分,而不是压缩完整的更新文件?是否有其他压缩方法来实现此目标

例如:


在这里,您可以看到,我在文件后面附加了“hello”字符串,并没有压缩“hello”定位的文件块并与已压缩的1GB文件合并,而是重新压缩了完整的文件。

7z不是为此而设计的


您可以查看和代码,了解如何将短消息有效地附加到压缩文件中的示例。

您需要使用面向块的压缩算法,但是您要查找的内容的实现很少。是的,我找不到任何开源实现。我想,我应该坚持7z比@伊格纳西奥·巴斯克斯·艾布拉姆斯
$ mkdir target
$ fallocate -l 1G target/temp_1GB_file
$ time 7z a target.7z target
7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)    
Scanning    
Updating archive target.7z    
Compressing  target/temp_1GB_file
Compressing  target/target.7z    
Everything is Ok

real    0m23.054s
user    0m30.316s
sys 0m1.047s

$ echo 'hello' >> target/temp_1GB_file
$ time 7z u target.7z target # Here complete file has been compressed all over again.
7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)    
Scanning   
Updating archive target.7z    
Compressing  target/temp_1GB_file    
Everything is Ok    

real    0m23.861s
user    0m30.781s
sys 0m1.192s