ฉันมีไฟล์ขนาดใหญ่ที่คล้ายกันหลายร้อยไฟล์ (30 เมกะไบต์) ซึ่งฉันต้องการบีบอัด ไฟล์ทุกคู่มีข้อมูลเดียวกัน 99% (แตกต่างน้อยกว่า 1%) ดังนั้นฉันคาดว่าจะมีไฟล์เก็บถาวรไม่เกิน 40-50 เมกะไบต์
ไฟล์เดียวสามารถบีบอัดจาก 30 ล้านบาทเป็น 13-15 ล้านบาท (มีxz -1
, gz -1
, bzip2 -1
) แต่เมื่อบีบอัดสองคนหรือมากกว่าไฟล์ฉันต้องการจะมีที่เก็บที่มีขนาด13-15MB + N*0.3MB
ที่ N คือจำนวนของไฟล์
เมื่อใช้tar
(การสร้างที่เก็บแข็ง) และxz -6
(การกำหนดบีบอัดพจนานุกรมให้มีขนาดใหญ่กว่าหนึ่งไฟล์ - ปรับปรุง - นี้ไม่เพียงพอ ) N*13MB
ผมยังมีเก็บมีขนาด
ฉันคิดว่าทั้งสองgzip
และbzip2
จะไม่ช่วยฉันเพราะพวกเขามีพจนานุกรมน้อยกว่า 1 MB และ tar tar ของฉันมีการทำซ้ำทุก ๆ 30 MB
ฉันจะเก็บปัญหาของฉันใน Linux ที่ทันสมัยโดยใช้เครื่องมือมาตรฐานได้อย่างไร
เป็นไปได้ไหมที่จะปรับแต่งxz
การบีบอัดข้อมูลที่รวดเร็ว แต่ใช้พจนานุกรมที่มีขนาดใหญ่กว่า 30-60 MB
ปรับปรุง : tar c input_directory | xz --lzma2=dict=128M,mode=fast,mf=hc4 --memory=2G > compressed.tar.xz
ไม่หลอกลวงด้วย ไม่แน่ใจเกี่ยวกับความจำเป็นmf=hc4
และ--memory=2G
ตัวเลือก; แต่dict=128M
ตั้งพจนานุกรมจะเพียงพอใหญ่ (ใหญ่กว่าหนึ่งไฟล์) และทำให้บิตกระบวนการเร็วกว่าmode=fast
-e
xz -1 --memory=2G
ไม่ได้ช่วยทดสอบในไฟล์ 2 และ 4 จากชุด