使用7-Zip拆分为许多.ZIP文件


12

如果我有一个100 GB的文件夹并分割了ZIP,那么如果我将其分割成100个.ZIP文件(每个1 GB)或10个.ZIP文件(每个10 GB),则消耗了多少磁盘空间?

每个10 GB的10个.ZIP文件占用的空间是否大于每个10 GB的10个.ZIP文件占用的空间?


而且您找不到原因,因为?
戴夫

5
你为什么不能尝试呢?
彼得·莫滕森

1
每个独立的ZIP文件都有一些开销。但是,您可以将ZIP文件分割为多个片段,然后重新组装。这些片段在每个片段中都没有ZIP开销,并且如果您按扇区或块边界分割,它们不会包含浪费的空间。
fixer1234 '18

Answers:


19

让我们找出答案!

100 MB文件(27个):

7z a -tzip -v100M ./100m/archive ./kali-linux-xfce-2018.2-amd64.iso

$ du ./100m/
2677884 ./100m/

10 MB档案(262个):

7z a -tzip -v10M ./10m/archive ./kali-linux-xfce-2018.2-amd64.iso

$ du ./10m/
2677908 ./10m

结果:10 MB的拆分存档占用了额外的24 KB。是的,这是有区别的,100个1 GB的文件将比10个10 GB的文件占用更多的空间。

差异似乎可以忽略不计。我会选择对您更方便的那个。


4
du默认情况下不会输出以字节为单位的大小(除非您的270M文件变成2677908字节)。它确实显示了文件的磁盘大小,该大小可能与实际数据大小不同(可能适用于其他文件系统上载或存储)
Xen2050

您是正确的,它实际上是以KB为单位输出的。我已经编辑了答案以纠正这种差异。原始文件是Kali Linux ISO,约为2.6GB。您对磁盘大小与实际数据大小有一个很好的了解,我特别在考虑磁盘大小,因为它考虑了拥有其他文件的开销,但是您说得对,这取决于您的内容。确实与档案有关。
Layne Bernardo '18

抱歉,我在仔细检查运行字符串时遇到了与您大致相似的答案。
AFH

压缩文件的最大大小为4GB。
pbies,

1
是的,这就是为什么我不费心计算百分比。我认为它不能算出原始文件大小的固定百分比,尤其是考虑到文件系统的差异。
Layne Bernardo

15

每个文件在文件结束后都有未使用的逻辑扇区空间的文件系统开销,但是如果拆分大小是逻辑扇区大小的倍数,则可以消除这种情况(在下面的示例中不一定如此)。

额外的目录条目可能会使用额外的字节,但是除非目录现在占用了额外的逻辑扇区,否则这些字节将不会显示。

拆分文件的内容与具有相同拆分大小的二进制拆分程序创建的文件相同。

我在Linux上通过使用7 + MB文件上的GUI版本对这些文件进行了验证,并使用7-Zip(File.7z.00?)提供了8个1MB大小的分割文件(),然后创建了一个完整的归档文件(Full.7z),我将其分割为:

7z -v1000000 a File;                                         # Create split volumes File.7z.00?
7z a Full File;                                              # Create full archive Full.7z
split -b 1000000 -a 3 --numeric-suffixes=1 Full.7z Full.7z.; # Split full archive into Full.7z.00?
for f in {001..008}; do cmp Full.7z.$f File.7z.$f; done;     # Compare splits with 7z volumes

要在其他操作系统上进行测试,您可能需要下载或编写适当的分离器程序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.