เมื่อไฟล์ถูก gzipped จะมีวิธีสอบถามอย่างรวดเร็วเพื่อบอกว่าขนาดไฟล์ที่ไม่บีบอัดคืออะไร (โดยไม่ต้องคลายการบีบอัด) โดยเฉพาะอย่างยิ่งในกรณีที่ไฟล์ที่ไม่มีการบีบอัด> 4GB
ตาม RFC https://tools.ietf.org/html/rfc1952#page-5คุณสามารถสอบถาม 4 ไบต์สุดท้ายของไฟล์ได้ แต่หากไฟล์ที่ไม่มีการบีบอัดเป็น> 4GB ค่าจะแสดงถึงuncompressed value modulo 2^32
ค่านี้สามารถเรียกคืนได้ด้วยการเรียกใช้gunzip -l foo.gz
อย่างไรก็ตามคอลัมน์ "ไม่มีการบีบอัด" จะมีuncompressed value modulo 2^32
อีกครั้งซึ่งน่าจะเป็นเพราะมันอ่านส่วนท้ายตามที่อธิบายไว้ข้างต้น
ฉันแค่สงสัยว่ามีวิธีการรับขนาดไฟล์ที่ไม่บีบอัดโดยไม่ต้องแตกไฟล์ก่อนซึ่งจะเป็นประโยชน์อย่างยิ่งในกรณีที่ไฟล์ gzipped มีข้อมูล 50GB + และใช้เวลาสักครู่ในการคลายบีบอัดโดยใช้วิธีการเช่น gzcat foo.gz | wc -c
แก้ไข:ข้อ จำกัด 4GB ได้รับการยอมรับอย่างเปิดเผยในman
หน้าของgzip
ยูทิลิตี้ที่มาพร้อมกับ OSX ( Apple gzip 242
)
BUGS
According to RFC 1952, the recorded file size is stored in a 32-bit
integer, therefore, it can not represent files larger than 4GB. This
limitation also applies to -l option of gzip utility.
gzip
ออกมาในปี 1992 ฉันจะแปลกใจถ้ามีเด็กอายุ 23 ปีสัญจรไปมาแถวนี้ ฉันแน่ใจว่ามีบางอย่าง แต่จากสิ่งที่ฉันสามารถบอกอายุเฉลี่ยอยู่ที่ประมาณ 30-35
xz
ซึ่งไม่มีข้อ จำกัด GNU xz
จะเปลี่ยนไปใช้
xz
จะ 'แก้ปัญหานี้'
gzip
ต้องมีอายุมากกว่าผู้ใช้จำนวนมากในชุมชนนี้!