Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีบีบอัดไฟล์เร็วขึ้นด้วย pigz

แม้ gzip จะเป็นหนึ่งในโซลูชันจัดเก็บ/บีบอัดที่เร็วที่สุด แต่มีข้อจำกัดเล็กน้อย: ไม่รองรับหลายโปรเซสเซอร์/โคร์ ดังนั้นหากคุณมี PC ใหม่ๆ มันไม่ได้ใช้ประโยชน์จากความสามารถเต็มที่ของฮาร์ดแวร์ pigz เป็นการใช้งาน gzip แบบมัลติเธรด (multi-threaded) ช่วยให้คุณบีบอัดไฟล์เป็นรูปแบบ GNU zip ในเวลาสั้นกว่ามาก นี่คือวิธีบีบอัดไฟล์เร็วขึ้นด้วย pigz

การติดตั้ง

ติดตั้ง pigz บน Ubuntu, Mint และ Debian-based อื่นๆ:

sudo apt install pigz
วิธีบีบอัดไฟล์เร็วขึ้นด้วย pigz

บน Arch และ Manjaro Linux:

sudo pacman -S pigz

หากใช้ openSUSE:

sudo zypper install pigz

บีบอัดไฟล์เดี่ยว

บีบอัดไฟล์ใดๆ เป็นรูปแบบ GNU Zip ด้วย pigz:

pigz NAME_OF_FILE
วิธีบีบอัดไฟล์เร็วขึ้นด้วย pigz

ปัญหาหนึ่งคือ pigz ลบไฟล์ต้นฉบับหลังบีบอัดโดยค่าเริ่มต้น หากต้องการเก็บไฟล์ต้นฉบับ ใช้สวิตช์ -k (ตัวพิมพ์เล็ก):

pigz -k NAME_OF_FILE
วิธีบีบอัดไฟล์เร็วขึ้นด้วย pigz

pigz รองรับระดับการบีบอัดหลายระดับ เลือกได้โดยระบุตัวเลขหลังขีดกลาง เช่น:

pigz -5 FILE_TO_BE_COMPRESSED

ใช้ตัวเลข 1 ถึง 9 โดย "1" ให้ประสิทธิภาพเร็วที่สุดแต่บีบอัดน้อยที่สุด "9" ให้ช้าที่สุดแต่บีบอัดมากที่สุด

วิธีบีบอัดไฟล์เร็วขึ้นด้วย pigz

บีบอัดโฟลเดอร์

pigz มีข้อจำกัดสำคัญ: ไม่รองรับโฟลเดอร์ บีบอัดได้เฉพาะไฟล์เดี่ยว เทคนิคแก้ไขคือใช้ร่วมกับ tar

สมมติต้องการบีบอัดโฟลเดอร์ "Pictures" เนื่องจาก tar รองรับการใช้โปรแกรมบีบอัดภายนอก สามารถทำได้ดังนี้:

tar --use-compress-program="pigz -k -9" -cf pictures.tar.gz Pictures

ในคำสั่งด้านบน tar --use-compress-program ระบุว่าแม้จะสร้างไฟล์แอรไกว์ด้วย tar แต่การบีบอัดเนื้อหาจะเกิดขึ้นผ่านโปรแกรมภายนอก

โปรแกรมภายนอกและพารามิเตอร์ถูกกำหนดโดยส่วน pigz -k -9

สุดท้าย ระบุว่าต้องการ Create File ("-cf") ชื่อ "pictures.tar.gz" ด้วยทุกอย่างในโฟลเดอร์ "Pictures"

วิธีบีบอัดไฟล์เร็วขึ้นด้วย pigz

แตกไฟล์และโฟลเดอร์

แตกไฟล์ .gz ด้วย pigz ง่ายๆ ด้วยคำสั่งใดคำสั่งหนึ่ง:

pigz -d FILENAME.gz
unpigz FILENAME.gz

สำหรับไฟล์ tar.gz ที่สร้างไว้ก่อนหน้า การแตกโฟลเดอร์ใช้วิธี tar เดียวกัน:

tar --use-compress-program="pigz -d" -xvf pictures.tar.gz
วิธีบีบอัดไฟล์เร็วขึ้นด้วย pigz

จำกัดการขนานประมวลผล

สวิตช์เพิ่มเติมที่อาจมีประโยชน์: -p pigz โดยค่าเริ่มต้นใช้โปรเซสเซอร์/โคร์ทั้งหมดในคอมพิวเตอร์ เมื่อบีบอัดข้อมูลขนาดใหญ่ อาจส่งผลต่อการตอบสนองของคอมพิวเตอร์

ด้วยสวิตช์ -p สามารถจำกัด pigz ให้ใช้โปรเซสเซอร์/โคร์จำนวนเฉพาะได้ ทำให้โคร์อื่นว่างสำหรับงานอื่นๆ และการโต้ตอบ ให้เพิ่มจำนวนโปรเซสเซอร์/โคร์หลังสวิตช์:

pigz -k -p2 FILE_TO_BE_COMPRESSED

-p2 จำกัด pigz ใช้เพียงสองโปรเซสเซอร์/โคร์ ใช้ตัวเลขอื่นได้ แต่แนะนำให้อยู่ในขีดจำกัดของฮาร์ดแวร์

เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการบีบอัดและแตกไฟล์ใน Linux ดูคู่มือฉบับสมบูรณ์ของคำสั่งจัดเก็บและบีบอัดของ Linux