การประมาณไฟล์ที่ไม่บีบอัดผิดหรือ?


9

ฉันมีไฟล์บีบอัดขนาดใหญ่ (~ 60G) ( tar.gz)

ฉันเคยsplitแบ่งมันออกเป็น 4 ส่วนจากนั้นจึงcatกลับมารวมกัน

อย่างไรก็ตามตอนนี้เมื่อฉันพยายามที่จะประมาณขนาดของไฟล์ที่ไม่มีการบีบอัดมันกลับกลายเป็นว่ามันเล็กกว่าเดิมหรือไม่? เป็นไปได้อย่างไร?

$ gzip -l myfile.tar.gz 
         compressed        uncompressed  ratio uncompressed_name
        60680003101          3985780736 -1422.4% myfile.tar

มันsplitเกี่ยวข้องกับเรื่องนี้จริงๆเหรอ? คุณมีปัญหาหลังจากแยกและรวมกลับเข้าด้วยกันหรือไม่
Barmar

คำตอบ:


20

ปัญหานี้เกิดจากขนาดของเขตข้อมูลที่ใช้ในการจัดเก็บขนาดที่ไม่บีบอัดในไฟล์ gzipped: มีเพียง 32 บิตดังนั้นgzipสามารถจัดเก็บขนาดไฟล์ได้สูงสุด 4 GiB สิ่งที่มีขนาดใหญ่กว่านั้นถูกบีบอัดและไม่บีบอัดอย่างถูกต้อง แต่gzip -lให้ขนาดที่ไม่บีบอัดไม่ถูกต้อง

ดังนั้นการแยก tarball และฟื้นฟูมันไม่ได้เกิดจากนี้และไม่ควรจะได้รับผลกระทบไฟล์ - gzip -tvถ้าคุณต้องการให้แน่ใจว่าคุณสามารถตรวจสอบด้วย

ดูวิธีที่เร็วที่สุดของการทำงานออกบีบอัดขนาดของไฟล์บีบอัดขนาดใหญ่สำหรับรายละเอียดเพิ่มเติมและคู่มือ :gzip

gzipรูปแบบหมายถึงขนาดการป้อนข้อมูลแบบโมดูโล2³²ดังนั้นบีบอัดขนาดและอัตราการบีบอัดมีการระบุไว้อย่างไม่ถูกต้องสำหรับไฟล์บีบอัด 4 ลิ่มและมีขนาดใหญ่


ดังนั้นเนื้อหาจริงยังคงไม่เปลี่ยนแปลงใช่ไหม
Ruslan

@Ruslan ใช่ขนาดที่แสดงไม่ถูกต้อง แต่เนื้อหานั้นดี
Stephen Kitt

+1 ฉันจะเดาว่ามันเป็นข้อผิดพลาด UINT32 หรืออะไรทำนองนั้น
mathreadler
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.