แม้ gzip จะเป็นหนึ่งในโซลูชันจัดเก็บ/บีบอัดที่เร็วที่สุด แต่มีข้อจำกัดเล็กน้อย: ไม่รองรับหลายโปรเซสเซอร์/โคร์ ดังนั้นหากคุณมี PC ใหม่ๆ มันไม่ได้ใช้ประโยชน์จากความสามารถเต็มที่ของฮาร์ดแวร์ pigz เป็นการใช้งาน gzip แบบมัลติเธรด (multi-threaded) ช่วยให้คุณบีบอัดไฟล์เป็นรูปแบบ GNU zip ในเวลาสั้นกว่ามาก นี่คือวิธีบีบอัดไฟล์เร็วขึ้นด้วย pigz
การติดตั้ง
ติดตั้ง pigz บน Ubuntu, Mint และ Debian-based อื่นๆ:
sudo apt install pigz
บน Arch และ Manjaro Linux:
sudo pacman -S pigz
หากใช้ openSUSE:
sudo zypper install pigz
บีบอัดไฟล์เดี่ยว
บีบอัดไฟล์ใดๆ เป็นรูปแบบ GNU Zip ด้วย pigz:
pigz NAME_OF_FILE
ปัญหาหนึ่งคือ pigz ลบไฟล์ต้นฉบับหลังบีบอัดโดยค่าเริ่มต้น หากต้องการเก็บไฟล์ต้นฉบับ ใช้สวิตช์ -k (ตัวพิมพ์เล็ก):
pigz -k NAME_OF_FILE
pigz รองรับระดับการบีบอัดหลายระดับ เลือกได้โดยระบุตัวเลขหลังขีดกลาง เช่น:
pigz -5 FILE_TO_BE_COMPRESSED
ใช้ตัวเลข 1 ถึง 9 โดย "1" ให้ประสิทธิภาพเร็วที่สุดแต่บีบอัดน้อยที่สุด "9" ให้ช้าที่สุดแต่บีบอัดมากที่สุด
บีบอัดโฟลเดอร์
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"
แตกไฟล์และโฟลเดอร์
แตกไฟล์ .gz ด้วย pigz ง่ายๆ ด้วยคำสั่งใดคำสั่งหนึ่ง:
pigz -d FILENAME.gz unpigz FILENAME.gz
สำหรับไฟล์ tar.gz ที่สร้างไว้ก่อนหน้า การแตกโฟลเดอร์ใช้วิธี tar เดียวกัน:
tar --use-compress-program="pigz -d" -xvf pictures.tar.gz
จำกัดการขนานประมวลผล
สวิตช์เพิ่มเติมที่อาจมีประโยชน์: -p pigz โดยค่าเริ่มต้นใช้โปรเซสเซอร์/โคร์ทั้งหมดในคอมพิวเตอร์ เมื่อบีบอัดข้อมูลขนาดใหญ่ อาจส่งผลต่อการตอบสนองของคอมพิวเตอร์
ด้วยสวิตช์ -p สามารถจำกัด pigz ให้ใช้โปรเซสเซอร์/โคร์จำนวนเฉพาะได้ ทำให้โคร์อื่นว่างสำหรับงานอื่นๆ และการโต้ตอบ ให้เพิ่มจำนวนโปรเซสเซอร์/โคร์หลังสวิตช์:
pigz -k -p2 FILE_TO_BE_COMPRESSED
-p2 จำกัด pigz ใช้เพียงสองโปรเซสเซอร์/โคร์ ใช้ตัวเลขอื่นได้ แต่แนะนำให้อยู่ในขีดจำกัดของฮาร์ดแวร์
เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการบีบอัดและแตกไฟล์ใน Linux ดูคู่มือฉบับสมบูรณ์ของคำสั่งจัดเก็บและบีบอัดของ Linux