我需要将一个巨大的文件夹压缩成多个zip文件,但每个文件的大小都不得超过1 GB。
我找到了以下命令
zip -r -s 1g MyZipFile.zip folderToCompress/
但是生成的文件确实超过了1 gb:
-rw-r--r-- 1 user staff 1073741824 14 Feb 15:40 MyZipFile.z01
-rw-r--r-- 1 user staff 1073741824 14 Feb 15:42 MyZipFile.z02
-rw-r--r-- 1 user staff 1073741824 14 Feb 15:41 MyZipFile.z03
-rw-r--r-- 1 user staff 1073741824 14 Feb 15:42 MyZipFile.z04
-rw-r--r-- 1 user staff 1073741824 14 Feb 15:43 MyZipFile.z05
-rw-r--r-- 1 user staff 1073741824 14 Feb 15:43 MyZipFile.z06
-rw-r--r-- 1 user staff 865071084 14 Feb 15:44 MyZipFile.zip
我在做什么错了?
谢谢您的帮助
答案 0 :(得分:3)
zip
参数时, -s 1g
似乎将大小限制为1 Gibibyte, not 1 Gigabyte。
1GiB = 2 ^ 30 = 1073741824字节,这就是为什么您看到该数字而不是1GB = 10 ^ 9 = 1000000000字节的原因。尝试在自己的macOS High Sierra桌面上压缩一个多GB文件夹时,我得到了相同的结果。 macOS since Snow Leopard handles file sizes according to standard Gigabytes,因此必须使用zip
来使用Gibibytes运行。 zip man page指出您只能在KiB,MiB,GiB或TiB中为-s
指定参数。
因此,如果要精确地将1GB作为大小限制,则必须找到某种方法来指定KiB,MiB,GiB或TiB中对应于1000000000字节的大小。我认为那是不可能的。使用MiB to GB converter,最接近1GB的是953.67431 MiB,并且zip
不允许您指定不是整数的-s
自变量。