我有一个文件需要分割成较小的大小(压缩时<24M)
继承人的文件:
498775505 Mar 8 00:08 test.file
我把它分开了:
split -b 125000k test.file test.file.
现在我有甚至大小的文件(除了最后一个文件,这很好)
476M Mar 8 00:08 test.file
123M Mar 8 00:09 test.file.aa
123M Mar 8 00:09 test.file.ab
123M Mar 8 00:09 test.file.ac
110M Mar 8 00:09 test.file.ad
但是当我对这些文件进行 gzip 压缩时,它们并没有均匀地压缩
gzip test.file.a*
476M Mar 8 00:08 test.file
27M Mar 8 00:09 test.file.aa.gz
23M Mar 8 00:09 test.file.ab.gz
22M Mar 8 00:09 test.file.ac.gz
20M Mar 8 00:09 test.file.ad.gz
有人可以解释一下 gzip 发生了什么吗?
(这更多是出于好奇,因为我可以将它们分成较小的数量以将它们放在下面24M
,只是想知道 gzip 在这里是如何工作的)
答案1
分割文件包含原始(完整)文件的不同部分,它们可能具有不同的内容。 (它们相同的唯一方法是原件高度重复。)
不同的内容会导致不同的压缩结果。像这样的东西aaaaaaaaaa
比 更容易压缩wekfsiorlm
。在 123 MB 的文件中,有相当大的空间可以让一个文件比另一个文件看起来更“随机”(更难压缩),即使它不像我这里的示例那么极端。
如果要控制压缩结果文件的大小,可以将原始文件分割成较小的部分,单独压缩它们,然后将压缩部分连接在一起,直至达到所需的大小限制。 (不过,我想不出一个简单的方法来做到这一点。)
如果输入包含gzip -d
多个压缩gzip
“文件”,它将全部解压缩。尽管这会损失一些压缩性能,因为分割会导致数据人为中断。