Tôi có hàng trăm tệp lớn tương tự (mỗi tệp 30 megabyte) mà tôi muốn nén. Mỗi cặp tệp có 99% dữ liệu giống nhau (chênh lệch ít hơn 1%), vì vậy tôi hy vọng sẽ không lưu trữ quá 40-50 megabyte.
Độc tập tin có thể được nén từ 30 MB đến 13-15 MB (với xz -1, gz -1, bzip2 -1), nhưng khi nén hai hoặc nhiều file tôi muốn có kho lưu trữ với kích thước 13-15MB + N*0.3MBtrong đó N là số lượng file.
Khi sử dụng tar(để tạo lưu trữ vững chắc) và xz -6(để xác định từ điển nén lớn hơn một tệp - Cập nhật - điều này là không đủ! ), Tôi vẫn có kho lưu trữ với kích thước N*13MB.
Tôi nghĩ rằng cả hai gzipvà bzip2sẽ không giúp tôi vì họ có từ điển dưới 1 MB và luồng tar của tôi có số lần lặp lại cứ sau 30 MB.
Làm cách nào tôi có thể lưu trữ vấn đề của mình trong Linux hiện đại bằng các công cụ tiêu chuẩn?
Có thể điều chỉnh xzđể nén nhanh, nhưng sử dụng từ điển lớn hơn 30-60 MB?
Cập nhật : Đã lừa với tar c input_directory | xz --lzma2=dict=128M,mode=fast,mf=hc4 --memory=2G > compressed.tar.xz. Không chắc chắn về sự cần thiết mf=hc4và --memory=2Gcác tùy chọn; nhưng dict=128Mđặt từ điển đủ lớn (lớn hơn một tệp) và mode=fastlàm cho quá trình nhanh hơn một chút -e.
xz -1 --memory=2Gkhông giúp được gì, đã thử nghiệm trên 2 và 4 tệp từ bộ.