Linux distro ทั่วไปให้การเข้าถึงกลไกการบีบอัดที่เรียบง่ายและมีประโยชน์มากมาย บทความนี้จะเน้นเฉพาะพวกเขาเท่านั้น
ประเภทการบีบอัด
การบีบอัดกำลังเข้ารหัสและแสดงข้อมูลโดยใช้บิตน้อยกว่าเดิม ในกรณีของการบีบอัดไฟล์ วิธีการบีบอัดจะใช้อัลกอริธึมและการคำนวณทางคณิตศาสตร์ของตัวเองเพื่อสร้างผลลัพธ์ที่โดยทั่วไปจะน้อยกว่าขนาดของไฟล์ต้นฉบับ เนื่องจากวิธีการบีบอัดที่แตกต่างกันและลักษณะสุ่มของไฟล์ ระยะจึงอาจแตกต่างกันมาก
การบีบอัดมี 2 แบบ
- การบีบอัดแบบสูญเสีย : นี่เป็นประเภทการบีบอัดที่มีความเสี่ยงซึ่งไม่รับประกันความสมบูรณ์ของข้อมูล โดยพื้นฐานแล้ว เมื่อบีบอัดแล้ว มีความเสี่ยงที่ไฟล์ต้นฉบับจะไม่สามารถสร้างใหม่ได้โดยใช้ไฟล์บีบอัด
ตัวอย่างที่ชัดเจนของการบีบอัดประเภทนี้คือรูปแบบ MP3 ที่รู้จักกันดี เมื่อมีการสร้าง MP3 จากไฟล์เสียงต้นฉบับ ไฟล์นั้นจะเล็กกว่าไฟล์เพลงต้นฉบับอย่างมาก ทำให้สูญเสียคุณภาพเสียงบางส่วน - การบีบอัดแบบไม่สูญเสียข้อมูล : เป็นการบีบอัดแบบที่นิยมใช้กันมากที่สุด โดยใช้วิธีการบีบอัดแบบไม่สูญเสียข้อมูล ไฟล์ต้นฉบับสามารถสร้างใหม่ได้จากไฟล์บีบอัด วิธีการบีบอัดที่ฉันจะพูดถึงในบทความนี้เป็นวิธีการบีบอัดแบบไม่สูญเสียข้อมูลทั้งหมด
การบีบอัดลินุกซ์
วิธีการบีบอัดส่วนใหญ่มีอยู่ในเครื่องมือ ทาร์ . สำหรับการบีบอัดไฟล์ zip เราจะใช้ zip เครื่องมือ. สมมติว่าระบบของคุณมีเครื่องมือเหล่านี้ติดตั้งอยู่แล้ว มาเริ่มกันเลย
ขั้นแรกเราต้องการไฟล์ทดสอบ เรียกใช้คำสั่งต่อไปนี้เพื่อสร้าง
$ฐาน64/dev/urandom| ศีรษะ -ค 20000000 >file.txt
มันจะสร้างไฟล์ข้อความที่มีขนาด 20MB
ตอนนี้ มาสร้างสำเนาไฟล์ 10 ชุดกัน รวมแล้วเป็น 200 MB
ซิปสำหรับบีบอัด
Zip เป็นเรื่องปกติธรรมดา สำหรับการสร้างไฟล์ zip เครื่องมือ zip ต้องใช้โครงสร้างคำสั่งต่อไปนี้
$zip <ผลผลิต>.zip<ป้อนข้อมูล>ในการบีบอัดไฟล์ทั้งหมดภายใต้ไดเร็กทอรีทดสอบในไฟล์ zip ไฟล์เดียว ให้รันคำสั่งนี้
$ziptest.zip*ขนาดอินพุตคือ 200 MB หลังจากบีบอัดแล้ว ตอนนี้ 152 MB!
โดยค่าเริ่มต้น เครื่องมือ zip จะใช้การบีบอัด DEFLATE อย่างไรก็ตาม มันยังสามารถใช้การบีบอัด bzip2 ได้อีกด้วย ไม่เพียงเท่านั้น คุณยังสามารถสร้างไฟล์ zip ที่ป้องกันด้วยรหัสผ่านได้อีกด้วย! เรียนรู้เพิ่มเติมเกี่ยวกับ zip .
Tar สำหรับการบีบอัดบน Linux
Tar ไม่ใช่วิธีบีบอัด แต่มักใช้เพื่อสร้างที่เก็บถาวร อย่างไรก็ตาม มันสามารถใช้วิธีบีบอัดข้อมูลยอดนิยมได้หลายวิธีในไฟล์เก็บถาวร
สำหรับการจัดการไฟล์ tar (หรือที่เรียกว่า tarball) มีเครื่องมือ tar เรียนรู้เพิ่มเติมเกี่ยวกับ tar โดยทั่วไป เครื่องมือ tar ใช้โครงสร้างคำสั่งต่อไปนี้
$ทาร์ <ตัวเลือก> <output_file> <ป้อนข้อมูล>ในการเพิ่มไฟล์ทดสอบลงในไฟล์ tar ไฟล์เดียว ให้รันคำสั่งต่อไปนี้
$ทาร์ -cvftest.tar*
ที่นี่ขนาดไฟล์ยังคงเท่าเดิม
Gzip สำหรับการบีบอัดบน Linux
GNU Zip หรือ gzip เป็นอีกวิธีหนึ่งในการบีบอัดข้อมูลยอดนิยม ซึ่งในความคิดของฉัน ดีกว่า zip แบบเดิม เนื่องจากมีการบีบอัดที่ดีกว่า เป็นผลิตภัณฑ์โอเพ่นซอร์สที่สร้างขึ้นโดย Mark Adler และ Jean-Loup Gailly ซึ่งเดิมถูกกำหนดให้มาแทนที่ UNIX ประคบ คุณประโยชน์.
สำหรับการจัดการไฟล์เก็บถาวร gzip มี 2 เครื่องมือให้เลือก: tar และ gzip ลองดูทั้งสองอย่าง
ขั้นแรกให้ใช้เครื่องมือ gzip นี่คือลักษณะโครงสร้างคำสั่ง gzip
$gzip <ตัวเลือก> <ป้อนข้อมูล>ตัวอย่างเช่น คำสั่งต่อไปนี้จะแทนที่ test1.txt ด้วยไฟล์บีบอัด test1.txt.gz
$gzip -vtest1.txt
หากคุณต้องการบีบอัดไดเร็กทอรีทั้งหมดโดยใช้ gzip ให้รันคำสั่งนี้ ที่นี่ แฟล็ก -r ใช้สำหรับการบีบอัดแบบเรียกซ้ำ Gzip จะผ่านโฟลเดอร์ทั้งหมดและบีบอัดไฟล์แต่ละไฟล์ในแต่ละโฟลเดอร์
$gzip -NS <folder_path>Gzip รองรับค่ากำลังอัดที่หลากหลาย เริ่มตั้งแต่ 1 (บีบอัดน้อยที่สุด เร็วที่สุด) ถึง 9 (บีบอัดดีที่สุด ช้าที่สุด)
$gzip -v -9 <ไฟล์>เพื่อการควบคุมผลผลิตและความสะดวกในการใช้งานได้ดียิ่งขึ้น tar จะดีกว่าสำหรับงาน เรียกใช้คำสั่งต่อไปนี้
$ทาร์ -cvzftest.tar.gz*ผลลัพธ์จะคล้ายกับ zip โดยใช้ DEFLATE ซึ่งส่งผลให้มีการบีบอัด 152 MB
Bzip2 สำหรับการบีบอัดบน Linux
Bzip2 เป็นเครื่องมือโอเพ่นซอร์สฟรีที่ใช้อัลกอริทึม Burrows-Wheeler สำหรับการบีบอัด เปิดตัวครั้งแรกในปี 1996 bzip2 ใช้แทนการบีบอัด gzip อย่างหนัก
เช่นเดียวกับ gzip มีเครื่องมือ 2 อย่างสำหรับใช้งานกับ bzip2: tar และ bzip2
เครื่องมือ bzip2 ทำงานคล้ายกับเครื่องมือ gzip สามารถทำงานได้ครั้งละไฟล์เดียวเท่านั้น นี่คือโครงสร้างคำสั่ง
$bzip2 <ตัวเลือก> <ป้อนข้อมูล>มาบีบอัดไฟล์ test1.txt กันเถอะ ในที่นี้ แฟล็ก -v ใช้สำหรับโหมด verbose
$bzip2 -vtest1.txt
คล้ายกับ gzip bzip2 ยังรองรับการบีบอัดในระดับต่างๆ โดยเริ่มจาก 1 (ค่าเริ่มต้น ใช้หน่วยความจำน้อยกว่า) ถึง 9 (บีบอัดมาก ใช้หน่วยความจำสูง)
$bzip2 -v -9 <ไฟล์>วิธีที่ดีกว่าในการใช้การบีบอัด bzip2 คือการใช้ tar ใช้คำสั่งต่อไปนี้
$ทาร์ -cvjftest.tar.bz2*การบีบอัดได้รับการปรับปรุงให้ดีขึ้นกว่าครั้งก่อนเล็กน้อย ตอนนี้ขนาดไฟล์ลดลงเหลือ 151.7 MB
XZ สำหรับการบีบอัดบน Linux
เป็นผู้มาใหม่ในด้านการบีบอัด เปิดตัวครั้งแรกในปี 2552 มีการใช้งานเพิ่มขึ้นอย่างต่อเนื่องตั้งแต่นั้นมา
เครื่องมือบีบอัด xz ใช้อัลกอริธึม LZMA2 ที่มีอัตราส่วนการบีบอัดที่สูงกว่าเมื่อเทียบกับ gzip และ bzip2 ทำให้เป็นตัวเลือกที่ดีเมื่อคุณต้องการประหยัดพื้นที่ดิสก์สูงสุด อย่างไรก็ตาม สิ่งนี้มาพร้อมกับต้นทุนของความต้องการหน่วยความจำที่สูงขึ้นและการสิ้นเปลืองเวลา
ไฟล์ที่สร้างโดยเครื่องมือบีบอัด XZ มีนามสกุล .xz สำหรับการบีบอัดไฟล์เดียว คุณสามารถเรียกเครื่องมือ XZ ได้โดยตรง
$xz<ตัวเลือก> <ไฟล์>ตัวอย่างเช่น เรียกใช้คำสั่งต่อไปนี้เพื่อบีบอัดไฟล์ test1.txt
$xz-vtest1.txt
เช่นเดียวกับวิธีการบีบอัดอื่นๆ ที่กล่าวถึง xz ยังรองรับแรงอัดที่หลากหลายตั้งแต่ 1 (การบีบอัดต่ำสุด เร็วที่สุด) ถึง 9 (การบีบอัดที่ดีที่สุด ช้าที่สุด) หากคุณไม่สนใจเรื่องเวลาและต้องการประหยัดพื้นที่
$xz-v -9 <ไฟล์>
ในการสร้างไฟล์ XZ ที่บีบอัดจากไฟล์ทดสอบทั้งหมด ให้รันคำสั่งนี้
$ทาร์ -cvJftest.tar.xz*
ที่นี่ขนาดไฟล์ที่ส่งออกคือ 153.7 MB
การแยกไฟล์บีบอัด
การแยกไฟล์เก็บถาวรที่เราสร้างขึ้นนั้นง่ายกว่าการสร้าง ในการแตกไฟล์ zip ให้ใช้โครงสร้างคำสั่งต่อไปนี้
$เปิดเครื่องรูด <ชื่อไฟล์>.zip-NS <ปลายทาง>ในการแตกไฟล์ zip ที่เราสร้างขึ้น ให้รันคำสั่งนี้ สิ่งนี้จะแยกเนื้อหาทั้งหมดในไดเรกทอรีเดียวกัน
$เปิดเครื่องรูดtest.zip
สำหรับการแยกไฟล์เก็บถาวร tar, tar.gz, tar.bz2 และ tar.xz เราต้องใช้ ทาร์ เครื่องมือ. คำสั่ง tar ต่อไปนี้ใช้สำหรับการแตกไฟล์ทั้งหมด
$ทาร์ -xvf <archive_filename>ตัวอย่างเช่น แยกไฟล์ทั้งหมดออกจากไฟล์บีบอัด bz2
$ทาร์ -xvftest.tar.bz2
หากต้องการขยายไฟล์ gzip (ไม่ใช่ tar.gz) ให้เรียกใช้คำสั่งนี้
$gzip -NS <gzip_file>ในทำนองเดียวกัน คำสั่งต่อไปนี้จะคลายการบีบอัด bzip2 archive
$bzip2 -NS <bzip2_file>โครงสร้างคำสั่งเดียวกันกับไฟล์เก็บถาวร xz
$xz-NS <xz_file>ความคิดสุดท้าย
หวังว่าตอนนี้คุณมีความรู้เพียงพอที่จะจัดการกับงานบีบอัดในสถานการณ์ต่างๆ วิธีการบีบอัดทั้งหมดมีคุณสมบัติที่น่าสนใจมากทั้งนี้ขึ้นอยู่กับข้อกำหนดเฉพาะ
สิ่งสำคัญประการหนึ่งที่ควรทราบคือ ผลการบีบอัดจะไม่เหมือนเดิมตลอดเวลา เมื่อป้อนข้อมูลต่างกัน ผลลัพธ์จะแตกต่างกัน ตัวอย่างเช่น ในบางกรณี xz สามารถให้ผลลัพธ์การบีบอัดที่เกินจริงได้ ในขณะที่ในตัวอย่างนี้ ไม่มี วิธีอื่นก็เหมือนกัน
หากต้องการเรียนรู้เชิงลึกเพิ่มเติมเกี่ยวกับเครื่องมือเหล่านี้ โปรดดูหน้าคู่มือที่เกี่ยวข้อง
$ชาย zip