zip不适用于大文件

压缩文件大小超过4 GB的最佳方法是什么?

我在过去几个月使用了以下内容。

mysqldump --all-databases | zip > mybackup.zip 

今天我得到一个错误:

 zip error: Entry too big to split, read, or write (file exceeds Zip's 4GB uncompressed size limit) 

我正在考虑使用bzip2。 我的select是正确的吗?

为什么不使用这种东西的行业标准:“gzip”?

 mysqldump --all-databases | gzip > mybackup.gz 

尺寸比较:

 720K mybackup.gz (compressed) 2.6M mybackup.sql (same data, but uncompressed for comparison) 

使用xz:

 mysqldump --all-databases | xz -9 -c > mybackup.xz 

压缩比远高于zip,只要确保观看内存使用情况。 如果在内存受限的环境中运行xz,则可以使用下表来调整命令并避免分页:

 Preset DictSize CompCPU CompMem DecMem -0 256 KiB 0 3 MiB 1 MiB -1 1 MiB 1 9 MiB 2 MiB -2 2 MiB 2 17 MiB 3 MiB -3 4 MiB 3 32 MiB 5 MiB -4 4 MiB 4 48 MiB 5 MiB -5 8 MiB 5 94 MiB 9 MiB -6 8 MiB 6 94 MiB 9 MiB -7 16 MiB 6 186 MiB 17 MiB -8 32 MiB 6 370 MiB 33 MiB -9 64 MiB 6 674 MiB 65 MiB 

xz文件大小是无限的(依赖于文件系统)。

要么将zip至less升级到3.0以支持Zip64:

 $ zip -v This is Zip 3.0 (July 5th 2008), by Info-ZIP. Zip special compilation options: LARGE_FILE_SUPPORT (can read and write large files on file system) ZIP64_SUPPORT (use Zip64 to store large files in archives) 

或使用不同的工具,如:7z,pbzip2,…

你应该可以用pbzip2压缩大于4GB的文件。