使用 7-Zip 拆分成多个 .ZIP 文件

使用 7-Zip 拆分成多个 .ZIP 文件

如果我有一个 100 GB 的文件夹,并且我将其拆分为 ZIP 文件,那么将其拆分成 100 个 1 GB 的 .ZIP 文件和 10 个 10 GB 的 .ZIP 文件,在占用的磁盘空间方面有何不同?

100 个大小为 1 GB 的 .ZIP 文件是否比 10 个大小为 10 GB 的 .ZIP 文件占用更多空间?

答案1

让我们来一探究竟!

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 文件占用更多空间。

不过,差异似乎微不足道。我会选择对您来说更方便的那个。

答案2

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

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

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

我在 Linux 上使用 GUI 版本对一个 7+MB 的文件进行了验证,使用 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

为了在另一个操作系统上测试,您可能需要下载或编写适当的分割器程序。

相关内容