bzip2 - คู่มืออ้างอิง ตัวเลือก ตัวอย่างคำสั่ง


ชื่อ

bzip2 , bunzip2 - โปรแกรมบีบอัดไฟล์เรียงบล็อก v1.0.8
bzcat - ขยายไฟล์เป็น stdout
bzip2recover - กู้คืนข้อมูลจากไฟล์ bzip2 ที่เสียหาย

เรื่องย่อ

bzip2 [ -cdfkqstvzVL123456789 ] [ filenames ... ]


bunzip2 [ -fkvsVL ] [ filenames ... ]
bzcat [ -s ] [ filenames ... ]
bzip2recover filename

คำอธิบาย

bzip2 บีบอัดไฟล์โดยใช้อัลกอริทึมการบีบอัดข้อความการเรียงลำดับบล็อก Burrows-Wheeler และการเข้ารหัส Huffman โดยทั่วไป การบีบอัดจะดีกว่าคอมเพรสเซอร์ที่ใช้ LZ77/LZ78 แบบธรรมดามาก และเข้าใกล้ประสิทธิภาพของคอมเพรสเซอร์ทางสถิติตระกูล PPM

ตัวเลือกบรรทัดคำสั่งจงใจให้คล้ายกับของ GNU gzip แต่ไม่เหมือนกัน

bzip2 ต้องการรายชื่อไฟล์ที่มาพร้อมกับแฟล็กบรรทัดคำสั่ง แต่ละไฟล์จะถูกแทนที่ด้วยเวอร์ชันที่บีบอัดด้วยชื่อ "original_name.bz2" ไฟล์บีบอัดแต่ละไฟล์มีวันที่แก้ไข สิทธิ์ และเมื่อเป็นไปได้ มีความเป็นเจ้าของเหมือนกับต้นฉบับที่สอดคล้องกัน เพื่อให้สามารถเรียกคืนคุณสมบัติเหล่านี้ได้อย่างถูกต้องในเวลาคลายการบีบอัด การจัดการชื่อไฟล์ไร้เดียงสาในแง่ที่ว่าไม่มีกลไกสำหรับการรักษาชื่อไฟล์ดั้งเดิม การอนุญาต ความเป็นเจ้าของ หรือวันที่ในระบบไฟล์ที่ไม่มีแนวคิดเหล่านี้ หรือมีข้อจำกัดด้านความยาวของชื่อไฟล์อย่างร้ายแรง เช่น MS-DOS

โดยค่าเริ่มต้น bzip2 และ bunzip2 จะไม่เขียนทับไฟล์ที่มีอยู่ หากคุณต้องการให้สิ่งนี้เกิดขึ้น ให้ระบุแฟล็ก -f

หากไม่ได้ระบุชื่อไฟล์ bzip2 จะบีบอัดจากอินพุตมาตรฐานไปยังเอาต์พุตมาตรฐาน ในกรณีนี้ bzip2 จะปฏิเสธที่จะเขียนเอาต์พุตที่บีบอัดไปยังเทอร์มินัล เนื่องจากสิ่งนี้จะไม่สามารถเข้าใจได้โดยสิ้นเชิง ดังนั้นจึงไม่มีจุดหมาย

bunzip2 (หรือ bzip2 -d) แตกไฟล์ที่ระบุทั้งหมด ไฟล์ที่ไม่ได้สร้างโดย bzip2 จะถูกตรวจพบและเพิกเฉย และจะมีการออกคำเตือน bzip2 พยายามเดาชื่อไฟล์สำหรับไฟล์ที่คลายการบีบอัดจากชื่อไฟล์ที่บีบอัดดังต่อไปนี้:

filename.bz2 กลายเป็นชื่อไฟล์ filename.bz กลายเป็นชื่อไฟล์ filename.tbz2 กลายเป็น filename.tar filename.tbz กลายเป็น filename.tar ชื่ออื่นกลายเป็น anyothername.out

หากไฟล์ไม่ได้ลงท้ายด้วยหนึ่งในตอนจบที่เป็นที่รู้จัก เช่น .bz2, .bz, .tbz2 หรือ .tbz, bzip2 บ่นว่าเดาชื่อไฟล์ต้นฉบับไม่ได้ และใช้ชื่อเดิมที่มี .out ต่อท้าย

เช่นเดียวกับการบีบอัด การไม่ระบุชื่อไฟล์ทำให้เกิดการบีบอัดจากอินพุตมาตรฐานไปยังเอาต์พุตมาตรฐาน

bunzip2 จะคลายไฟล์อย่างถูกต้อง ซึ่งเป็นการต่อไฟล์ที่บีบอัดตั้งแต่สองไฟล์ขึ้นไป ผลลัพธ์คือการต่อไฟล์ที่ไม่บีบอัดที่สอดคล้องกัน รองรับการทดสอบความสมบูรณ์ (-t) ของไฟล์บีบอัดที่ต่อกัน

คุณยังสามารถบีบอัดหรือคลายไฟล์ไปยังเอาต์พุตมาตรฐานได้โดยกำหนดแฟล็ก -c ไฟล์หลายไฟล์อาจถูกบีบอัดและขยายขนาดเช่นนี้ ผลลัพธ์ที่ได้จะถูกป้อนตามลำดับไปยัง stdout การบีบอัดไฟล์หลายไฟล์ในลักษณะนี้จะสร้างสตรีมที่มีการแสดงไฟล์บีบอัดหลายไฟล์ สตรีมดังกล่าวสามารถขยายได้อย่างถูกต้องโดย bzip2 เวอร์ชัน 0.9.0 หรือใหม่กว่าเท่านั้น bzip2 เวอร์ชันก่อนหน้าจะหยุดทำงานหลังจากคลายการบีบอัดไฟล์แรกในสตรีม

bzcat (หรือ bzip2 -dc) ขยายไฟล์ที่ระบุทั้งหมดไปยังเอาต์พุตมาตรฐาน

bzip2 จะอ่านอาร์กิวเมนต์จากตัวแปรสภาพแวดล้อม BZIP2 และ BZIP ตามลำดับ และจะประมวลผลก่อนที่จะอ่านอาร์กิวเมนต์จากบรรทัดคำสั่ง ซึ่งเป็นวิธีที่สะดวกในการจัดหาอาร์กิวเมนต์เริ่มต้น

การบีบอัดจะทำเสมอ แม้ว่าไฟล์ที่บีบอัดจะมีขนาดใหญ่กว่าต้นฉบับเล็กน้อย ไฟล์ที่มีขนาดน้อยกว่าหนึ่งร้อยไบต์มีแนวโน้มที่จะมีขนาดใหญ่ขึ้น เนื่องจากกลไกการบีบอัดมีค่าใช้จ่ายคงที่ในพื้นที่ 50 ไบต์ ข้อมูลสุ่ม (รวมถึงเอาต์พุตของตัวบีบอัดไฟล์ส่วนใหญ่) จะถูกเข้ารหัสที่ประมาณ 8.05 บิตต่อไบต์ ทำให้มีการขยายตัวประมาณ 0.5%

เพื่อเป็นการตรวจสอบการป้องกันของคุณด้วยตนเอง bzip2 จะใช้ CRC แบบ 32 บิตเพื่อให้แน่ใจว่าไฟล์ในเวอร์ชันที่คลายการบีบอัดจะเหมือนกับต้นฉบับ สิ่งนี้จะป้องกันความเสียหายของข้อมูลที่บีบอัด และป้องกันข้อบกพร่องที่ตรวจไม่พบใน bzip2 (หวังว่าจะเป็นไปได้น้อยมาก) โอกาสที่ข้อมูลจะเสียหายโดยตรวจไม่พบนั้นเป็นเรื่องเล็กมาก ประมาณ 1 ใน 4 พันล้านสำหรับแต่ละไฟล์ที่ประมวลผล โปรดทราบว่าการตรวจสอบเกิดขึ้นเมื่อคลายการบีบอัด ดังนั้นจึงสามารถบอกคุณได้ว่ามีบางอย่างผิดปกติเท่านั้น ไม่สามารถช่วยคุณกู้คืนข้อมูลเดิมที่ไม่มีการบีบอัดได้ คุณสามารถใช้ bzip2recover เพื่อพยายามกู้คืนข้อมูลจากไฟล์ที่เสียหาย

ส่งคืนค่า: 0 สำหรับทางออกปกติ 1 สำหรับปัญหาด้านสิ่งแวดล้อม (ไม่พบไฟล์ แฟล็กไม่ถูกต้อง ข้อผิดพลาด I/O &c) 2 เพื่อระบุไฟล์บีบอัดที่เสียหาย 3 สำหรับข้อผิดพลาดความสอดคล้องภายใน (เช่น จุดบกพร่อง) ซึ่งทำให้ bzip2 ตื่นตระหนก

ตัวเลือก

-c --stdout

บีบอัดหรือขยายขนาดเป็นเอาต์พุตมาตรฐาน

-d --decompress

แรงบีบอัด bzip2, bunzip2 และ bzcat เป็นโปรแกรมเดียวกันจริงๆ และการตัดสินใจว่าจะดำเนินการอย่างไรขึ้นอยู่กับชื่อที่ใช้ . แฟล็กนี้จะลบล้างกลไกดังกล่าว และบังคับให้ bzip2 ขยายขนาด

-z --compress

ส่วนเสริมของ -d: บังคับให้บีบอัดโดยไม่คำนึงถึงชื่อการเรียกใช้

-t --test

ตรวจสอบความสมบูรณ์ของไฟล์ที่ระบุ แต่อย่าขยายขนาดไฟล์ การดำเนินการนี้จะทำการคลายการบีบอัดการทดลองจริง ๆ และโยนผลลัพธ์ทิ้งไป

-f --force

บังคับให้เขียนทับไฟล์เอาต์พุต โดยปกติ bzip2 จะไม่เขียนทับไฟล์เอาต์พุตที่มีอยู่ นอกจากนี้ บังคับให้ bzip2 ทำลายฮาร์ดลิงก์ไปยังไฟล์ ซึ่งมิฉะนั้นจะไม่ทำ

โดยปกติแล้ว bzip2 จะปฏิเสธที่จะคลายไฟล์ที่ไม่มีเมจิกเฮดเดอร์ไบต์ที่ถูกต้อง อย่างไรก็ตาม หากบังคับ (-f) ไฟล์ดังกล่าวจะผ่านไฟล์ที่ไม่ได้แก้ไข นี่คือลักษณะการทำงานของ GNU gzip

-k --keep

เก็บ (อย่าลบ) ไฟล์อินพุตระหว่างการบีบอัดหรือคลายการบีบอัด

-s --small

ลดการใช้หน่วยความจำสำหรับการบีบอัด การคลายการบีบอัด และการทดสอบ ไฟล์ถูกคลายและทดสอบโดยใช้อัลกอริทึมที่ปรับเปลี่ยนซึ่งต้องการเพียง 2.5 ไบต์ต่อบล็อกไบต์ ซึ่งหมายความว่าไฟล์ใดๆ ก็ตามสามารถคลายการบีบอัดในหน่วยความจำ 2300k ได้ แม้ว่าจะมีความเร็วประมาณครึ่งหนึ่งของความเร็วปกติก็ตาม

ในระหว่างการบีบอัด -s เลือกขนาดบล็อก 200k ซึ่งจะจำกัดการใช้หน่วยความจำให้อยู่ที่ประมาณตัวเลขเดียวกัน โดยเป็นค่าใช้จ่ายของอัตราส่วนการบีบอัดของคุณ กล่าวโดยสรุป หากเครื่องของคุณมีหน่วยความจำเหลือน้อย (8 เมกะไบต์หรือน้อยกว่า) ให้ใช้ -s สำหรับทุกอย่าง ดูการจัดการหน่วยความจำด้านล่าง

-q --quiet

ระงับข้อความเตือนที่ไม่จำเป็น ข้อความที่เกี่ยวข้องกับข้อผิดพลาด I/O และเหตุการณ์สำคัญอื่นๆ จะไม่ถูกระงับ

-v --verbose

โหมดรายละเอียด -- แสดงอัตราส่วนการบีบอัดสำหรับแต่ละไฟล์ที่ประมวลผล นอกจากนี้ -v ยังเพิ่มระดับการใช้คำฟุ่มเฟื่อย พ่นข้อมูลจำนวนมากซึ่งเป็นประโยชน์สำหรับวัตถุประสงค์ในการวินิจฉัยเป็นหลัก

-L --license -V --version

แสดงเวอร์ชันของซอฟต์แวร์ ข้อกำหนดและเงื่อนไขของสิทธิ์การใช้งาน

-1 (or --fast) to -9 (or --best)

กำหนดขนาดบล็อกเป็น 100 k, 200 k .. 900 k เมื่อทำการบีบอัด ไม่มีผลเมื่อคลายการบีบอัด ดูการจัดการหน่วยความจำด้านล่าง นามแฝง --fast และ --best มีไว้สำหรับความเข้ากันได้ของ GNU gzip เป็นหลัก โดยเฉพาะอย่างยิ่ง --fast ไม่ได้ทำให้สิ่งต่าง ๆ เร็วขึ้นอย่างมาก และ --best เพียงเลือกพฤติกรรมเริ่มต้น

--

ถือว่าอาร์กิวเมนต์ที่ตามมาทั้งหมดเป็นชื่อไฟล์ แม้ว่าจะขึ้นต้นด้วยเส้นประก็ตาม เพื่อให้คุณสามารถจัดการกับไฟล์ที่มีชื่อขึ้นต้นด้วยเส้นประ เช่น bzip2 -- -myfilename

--repetitive-fast --repetitive-best

ค่าสถานะเหล่านี้ซ้ำซ้อนในเวอร์ชัน 0.9.5 และสูงกว่า พวกเขาให้การควบคุมคร่าวๆ กับพฤติกรรมของอัลกอริทึมการเรียงลำดับในเวอร์ชันก่อนหน้า ซึ่งบางครั้งก็มีประโยชน์ 0.9.5 และสูงกว่ามีอัลกอริทึมที่ได้รับการปรับปรุงซึ่งทำให้แฟล็กเหล่านี้ไม่เกี่ยวข้อง

การจัดการหน่วยความจำ

bzip2 บีบอัดไฟล์ขนาดใหญ่เป็นบล็อกๆ ขนาดบล็อกมีผลกับทั้งอัตราส่วนการบีบอัดที่ได้รับ และจำนวนหน่วยความจำที่จำเป็นสำหรับการบีบอัดและคลายการบีบอัด แฟล็ก -1 ถึง -9 ระบุขนาดบล็อกเป็น 100,000 ไบต์ถึง 900,000 ไบต์ (ค่าเริ่มต้น) ตามลำดับ เวลาคลายการบีบอัด ขนาดบล็อกที่ใช้สำหรับการบีบอัดจะถูกอ่านจากส่วนหัวของไฟล์ที่บีบอัด จากนั้น bunzip2 จะจัดสรรหน่วยความจำให้ตัวเองเพียงพอสำหรับการขยายขนาดไฟล์ เนื่องจากขนาดบล็อกถูกจัดเก็บไว้ในไฟล์บีบอัด จึงเป็นไปตามที่แฟล็ก -1 ถึง -9 ไม่เกี่ยวข้องและถูกละเว้นในระหว่างการคลายการบีบอัด

ข้อกำหนดในการบีบอัดและคลายการบีบอัดเป็นไบต์ สามารถประมาณได้ดังนี้:

การบีบอัด: 400k + ( 8 x ขนาดบล็อก )

การบีบอัด: 100k + ( 4 x ขนาดบล็อก ) หรือ 100k + ( 2.5 x ขนาดบล็อก )

ขนาดบล็อกที่ใหญ่ขึ้นจะให้ผลตอบแทนส่วนเพิ่มที่ลดลงอย่างรวดเร็ว การบีบอัดส่วนใหญ่มาจากขนาดบล็อกสองหรือสามร้อย k แรก ซึ่งเป็นข้อเท็จจริงที่ควรคำนึงถึงเมื่อใช้ bzip2 กับเครื่องขนาดเล็ก สิ่งสำคัญคือต้องชื่นชมว่าความต้องการหน่วยความจำคลายการบีบอัดถูกตั้งค่าในเวลาบีบอัดโดยการเลือกขนาดบล็อก

สำหรับไฟล์ที่บีบอัดด้วยขนาดบล็อกเริ่มต้น 900k bunzip2 จะต้องการประมาณ 3700 kbytes เพื่อคลายการบีบอัด เพื่อรองรับการบีบอัดไฟล์ใดๆ บนเครื่องขนาด 4 เมกะไบต์ bunzip2 มีตัวเลือกในการคลายการบีบอัดโดยใช้หน่วยความจำประมาณครึ่งหนึ่งของจำนวนนี้ คือประมาณ 2,300 กิโลไบต์ ความเร็วในการคลายการบีบอัดจะลดลงครึ่งหนึ่ง ดังนั้นคุณควรใช้ตัวเลือกนี้เมื่อจำเป็นเท่านั้น แฟล็กที่เกี่ยวข้องคือ -s

โดยทั่วไปแล้ว ให้ลองใช้ข้อจำกัดของหน่วยความจำขนาดบล็อกที่ใหญ่ที่สุดที่อนุญาต เนื่องจากจะทำให้การบีบอัดทำได้สูงสุด ความเร็วในการบีบอัดและคลายการบีบอัดแทบไม่ได้รับผลกระทบจากขนาดบล็อก

ประเด็นสำคัญอีกประการหนึ่งใช้กับไฟล์ที่มีขนาดพอดีกับบล็อกเดียว ซึ่งหมายความว่าไฟล์ส่วนใหญ่ที่คุณจะพบจะใช้ขนาดบล็อกที่ใหญ่ จำนวนหน่วยความจำจริงที่แตะจะเป็นสัดส่วนกับขนาดของไฟล์ เนื่องจากไฟล์มีขนาดเล็กกว่าบล็อก ตัวอย่างเช่น การบีบอัดไฟล์ที่มีความยาว 20,000 ไบต์ด้วยแฟล็ก -9 จะทำให้คอมเพรสเซอร์จัดสรรหน่วยความจำประมาณ 7600k แต่แตะที่ 400k + 20000 * 8=560 kbytes เท่านั้น ในทำนองเดียวกันตัวคลายการบีบอัดจะจัดสรร 3700k แต่แตะที่ 100k + 20000 * 4=180 kbytes เท่านั้น

นี่คือตารางที่สรุปการใช้หน่วยความจำสูงสุดสำหรับขนาดบล็อกต่างๆ นอกจากนี้ยังบันทึกเป็นขนาดรวมที่บีบอัดสำหรับไฟล์ 14 ไฟล์ของ Calgary Text Compression Corpus รวม 3,141,622 ไบต์ คอลัมน์นี้ให้ความรู้สึกว่าการบีบอัดแตกต่างกันไปตามขนาดบล็อกอย่างไร ตัวเลขเหล่านี้มักจะกล่าวถึงความได้เปรียบของขนาดบล็อกที่ใหญ่กว่าสำหรับไฟล์ขนาดใหญ่ เนื่องจาก Corpus ถูกครอบงำด้วยไฟล์ที่มีขนาดเล็กกว่า

บีบอัด ขยายขนาด ขยายขนาด Corpus Flag การใช้งาน -s การใช้งาน

-1 1200k 500k 350k 914704 -2 2000k 900k 600k 877703 -3 2800k 1300k 850k 860338 -4 3600k 1700k 1100k 846899 -5 4400k 2100k 1350 k 845160 -6 5200k 2500k 1600k 838626 -7 6100k 2900k 1850k 834096 -8 6800k 3300k 2100k 828642 -9 7600k 3700k 2350k 828642

การกู้คืนข้อมูลจากไฟล์ที่เสียหาย

bzip2 บีบอัดไฟล์เป็นบล็อก โดยปกติจะมีความยาว 900kbytes แต่ละบล็อกได้รับการจัดการโดยอิสระ หากสื่อหรือข้อผิดพลาดในการส่งทำให้ไฟล์ .bz2 หลายบล็อกเสียหาย อาจเป็นไปได้ที่จะกู้คืนข้อมูลจากบล็อกที่ไม่เสียหายในไฟล์

การแทนการบีบอัดของแต่ละบล็อกถูกคั่นด้วยรูปแบบ 48 บิต ซึ่งทำให้สามารถค้นหาขอบเขตของบล็อกได้อย่างมั่นใจ แต่ละบล็อกยังมี CRC แบบ 32 บิตของตัวเอง ดังนั้น บล็อกที่เสียหายจึงสามารถแยกความแตกต่างจากบล็อกที่ไม่เสียหายได้

bzip2recover เป็นโปรแกรมง่ายๆ ที่มีวัตถุประสงค์เพื่อค้นหาบล็อกในไฟล์ .bz2 และเขียนบล็อกแต่ละบล็อกลงในไฟล์ .bz2 ของตัวเอง จากนั้นคุณสามารถใช้ bzip2 -t เพื่อทดสอบความสมบูรณ์ของไฟล์ผลลัพธ์ และขยายไฟล์ที่ไม่เสียหาย

bzip2recover ใช้อาร์กิวเมนต์เดียว ชื่อของไฟล์ที่เสียหาย และเขียนไฟล์จำนวนหนึ่ง "rec00001file.bz2", "rec00002file.bz2" ฯลฯ ซึ่งมีบล็อกที่แตกออกมา ชื่อไฟล์เอาต์พุตได้รับการออกแบบเพื่อให้ใช้สัญลักษณ์แทนในการประมวลผลที่ตามมา เช่น "bzip2 -dc rec*file.bz2 > recovery_data" -- ประมวลผลไฟล์ตามลำดับที่ถูกต้อง

bzip2recover ควรใช้จัดการกับไฟล์ .bz2 ขนาดใหญ่ เนื่องจากไฟล์เหล่านี้จะมีบล็อกจำนวนมาก เห็นได้ชัดว่ามันไร้ประโยชน์ที่จะใช้กับไฟล์บล็อกเดี่ยวที่เสียหาย เนื่องจากบล็อกที่เสียหายไม่สามารถกู้คืนได้ หากคุณต้องการลดการสูญเสียข้อมูลที่อาจเกิดขึ้นจากสื่อหรือข้อผิดพลาดในการส่ง คุณอาจลองบีบอัดด้วยขนาดบล็อกที่เล็กลง

หมายเหตุประสิทธิภาพ

ขั้นตอนการเรียงลำดับของการบีบอัดจะรวบรวมสตริงที่คล้ายกันไว้ในไฟล์ ด้วยเหตุนี้ ไฟล์ที่มีสัญลักษณ์ซ้ำๆ เช่น "aabaabaabaab ..." (ซ้ำหลายร้อยครั้ง) อาจบีบอัดได้ช้ากว่าปกติ เวอร์ชัน 0.9.5 และสูงกว่านั้นดีกว่าเวอร์ชันก่อนหน้ามากในแง่นี้ อัตราส่วนระหว่างเวลาการบีบอัดกรณีเลวร้ายที่สุดและกรณีเฉลี่ยอยู่ในพื้นที่ 10:1 สำหรับเวอร์ชันก่อนหน้า ตัวเลขนี้เป็นเหมือน 100:1 มากกว่า คุณสามารถใช้ตัวเลือก -vvvv เพื่อติดตามความคืบหน้าอย่างละเอียด ถ้าคุณต้องการ

ความเร็วในการคลายการบีบอัดไม่ได้รับผลกระทบจากปรากฏการณ์เหล่านี้

bzip2 มักจะจัดสรรหน่วยความจำหลายเมกะไบต์เพื่อใช้งาน จากนั้นจะเรียกเก็บเงินทั้งหมดในลักษณะที่ค่อนข้างสุ่ม ซึ่งหมายความว่าประสิทธิภาพทั้งสำหรับการบีบอัดและคลายการบีบอัดส่วนใหญ่จะถูกกำหนดโดยความเร็วที่เครื่องของคุณสามารถให้บริการแคชที่ขาดหายไป ด้วยเหตุนี้ การเปลี่ยนแปลงเล็กๆ น้อยๆ ในโค้ดเพื่อลดอัตราการพลาดจึงได้รับการสังเกตเพื่อให้มีการปรับปรุงประสิทธิภาพอย่างมากโดยไม่ได้สัดส่วน ฉันคิดว่า bzip2 จะทำงานได้ดีที่สุดในเครื่องที่มีแคชขนาดใหญ่มาก

ถ้ำ

ข้อความแสดงข้อผิดพลาด I/O ไม่เป็นประโยชน์เท่าที่ควร bzip2 พยายามอย่างยิ่งที่จะตรวจหาข้อผิดพลาด I/O และออกจากระบบอย่างหมดจด แต่บางครั้งรายละเอียดของปัญหานั้นค่อนข้างทำให้เข้าใจผิด

หน้าคู่มือนี้เกี่ยวข้องกับเวอร์ชัน 1.0.8 ของ bzip2 ข้อมูลที่บีบอัดที่สร้างโดยเวอร์ชันนี้รองรับการส่งต่อและย้อนหลังทั้งหมดกับเวอร์ชันสาธารณะก่อนหน้า เวอร์ชัน 0.1pl2, 0.9.0, 0.9.5, 1.0 .0, 1.0.1, 1.0.2 และสูงกว่า แต่มีข้อยกเว้นต่อไปนี้: 0.9.0 และสูงกว่าสามารถขยายขนาดไฟล์บีบอัดที่ต่อกันหลายไฟล์ได้อย่างถูกต้อง 0.1pl2 ไม่สามารถทำได้ มันจะหยุดหลังจากคลายการบีบอัดไฟล์แรกในสตรีม

bzip2recover เวอร์ชันก่อน 1.0.2 ใช้จำนวนเต็ม 32 บิตเพื่อแสดงตำแหน่งบิตในไฟล์บีบอัด ดังนั้นจึงไม่สามารถจัดการไฟล์บีบอัดที่มีความยาวเกิน 512 เมกะไบต์ได้ เวอร์ชัน 1.0.2 ขึ้นไปใช้ ints 64 บิตในบางแพลตฟอร์มที่รองรับ (เป้าหมายที่รองรับ GNU และ Windows) หากต้องการระบุว่า bzip2recover ถูกสร้างขึ้นด้วยข้อจำกัดดังกล่าวหรือไม่ ให้เรียกใช้โดยไม่มีข้อโต้แย้ง ในกรณีใด ๆ คุณสามารถสร้างเวอร์ชันที่ไม่จำกัดด้วยตัวคุณเอง หากคุณสามารถคอมไพล์ใหม่โดยตั้งค่า MaybeUInt64 ให้เป็นจำนวนเต็ม 64 บิตที่ไม่ได้ลงชื่อ

ผู้เขียน

จูเลียน ซีวาร์ด, jseward@acm.org

https://sourceware.org/bzip2/

แนวคิดที่รวมอยู่ใน bzip2 เกิดจาก (อย่างน้อย) บุคคลต่อไปนี้: Michael Burrows และ David Wheeler (สำหรับการแปลงการจัดเรียงบล็อก), David Wheeler (อีกครั้งสำหรับ Huffman coder), Peter Fenwick ( สำหรับรูปแบบการเขียนโค้ดที่มีโครงสร้างใน bzip ดั้งเดิม และการปรับแต่งอีกมากมาย) และ Alistair Moffat, Radford Neal และ Ian Witten (สำหรับตัวเข้ารหัสเลขคณิตใน bzip ดั้งเดิม) ฉัน ฉันเป็นหนี้บุญคุณมากสำหรับความช่วยเหลือ การสนับสนุน และคำแนะนำของพวกเขา ดูคู่มือในการแจกจ่ายแหล่งที่มาสำหรับตัวชี้ไปยังแหล่งที่มาของเอกสารประกอบ Christian von Roques สนับสนุนให้ฉันมองหาอัลกอริทึมการเรียงลำดับที่เร็วขึ้น เพื่อเพิ่มความเร็วในการบีบอัด Bela Lubkin สนับสนุนให้ฉันปรับปรุงประสิทธิภาพการบีบอัดกรณีที่แย่ที่สุด Donna Robinson XMLised เอกสาร สคริปต์ bz* มาจากสคริปต์ GNU gzip หลายคนส่งแพตช์ ช่วยเรื่องปัญหาการพกพา ให้ยืมเครื่อง ให้คำแนะนำ และให้ความช่วยเหลือโดยทั่วไป