Bunzip2 - คำสั่ง Linux - คำสั่ง Unix

ชื่อ

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

สรุป

bzip2 [ -cdfkqstvzVL123456789 ] [ ชื่อไฟล์ ... ]
bunzip2 [ -fkvsVL ] [ ชื่อไฟล์ ... ]
bzcat [ -s ] [ ชื่อไฟล์ ... ]
ชื่อไฟล์ bzip2recover

รายละเอียด

bzip2 บีบอัดไฟล์โดยใช้อัลกอริธึมการบีบอัดข้อความ Burrows-Wheeler และ Huffman coding การบีบอัด โดยทั่วไปจะดีกว่า เครื่องคอมเพรสเซอร์ แบบ 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 กลายเป็น anyothername.out

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

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

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

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

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

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

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

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

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

ตัวเลือก

-c --stdout

บีบอัดหรือขยายขนาดออกมาตรฐาน

-d-decompress

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

- z --compress

การเสริม -d: บังคับการบีบอัดโดยไม่คำนึงถึงชื่อการอุทธรณ์

-t - ทดสอบ

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

- f --force

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

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

-k --keep

เก็บ (ไม่ลบ) ไฟล์ใส่ในระหว่างการบีบอัดหรือบีบอัด

- เล็ก - เล็ก

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

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

-q --quiet

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

-v - verbose

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

-L-license -V-version

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

-1 (หรือ -fast) ถึง -9 (หรือ - สุด)

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

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

- เร็วกว่าที่เป็นคู่แข่งได้ดีที่สุด

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

สำคัญ: ใช้ คำสั่ง man ( % man ) เพื่อดูว่าคำสั่งถูกใช้อย่างไรในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งของคุณ

บทความที่เกี่ยวข้อง