Tar

zip 不適用於大文件

  • October 20, 2011

如果文件大小超過 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。我的選擇正確嗎?

為什麼不對這類東西使用行業標準:“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 文件大小不受限制(取決於文件​​系統)。

引用自:https://serverfault.com/questions/323136