วิธีการทั่วไป
มีตัวเลือกสำหรับtar
โปรแกรม:
-I, --use-compress-program PROG
filter through PROG (must accept -d)
คุณสามารถใช้ยูทิลิตี้ Archiver หรือ Compressor เวอร์ชั่นหลายเธรดได้
ผู้จัดเก็บมัลติเธรดที่ได้รับความนิยมมากที่สุดคือpigz (แทนที่จะเป็น gzip) และpbzip2 (แทนที่จะเป็น bzip2) ตัวอย่างเช่น
$ tar -I pbzip2 -cf OUTPUT_FILE.tar.bz2 paths_to_archive
$ tar --use-compress-program=pigz -cf OUTPUT_FILE.tar.gz paths_to_archive
Archiver ต้องยอมรับ -d หากยูทิลิตี้ทดแทนของคุณไม่มีพารามิเตอร์นี้และ / หรือคุณต้องการระบุพารามิเตอร์เพิ่มเติมให้ใช้ไพพ์ (เพิ่มพารามิเตอร์หากจำเป็น):
$ tar cf - paths_to_archive | pbzip2 > OUTPUT_FILE.tar.gz
$ tar cf - paths_to_archive | pigz > OUTPUT_FILE.tar.gz
อินพุตและเอาต์พุตของเธรดเดี่ยวและมัลติเธรดเข้ากันได้ คุณสามารถบีบอัดโดยใช้รุ่นมัลติเธรดและคลายการบีบอัดโดยใช้รุ่นเดียวและในทางกลับกัน
p7zip
สำหรับ p7zip สำหรับการบีบอัดคุณจำเป็นต้องมีเชลล์สคริปต์ขนาดเล็กดังต่อไปนี้:
#!/bin/sh
case $1 in
-d) 7za -txz -si -so e;;
*) 7za -txz -si -so a .;;
esac 2>/dev/null
บันทึกเป็น 7zhelper.sh นี่คือตัวอย่างการใช้งาน:
$ tar -I 7zhelper.sh -cf OUTPUT_FILE.tar.7z paths_to_archive
$ tar -I 7zhelper.sh -xf OUTPUT_FILE.tar.7z
XZ
เกี่ยวกับการรองรับ XZ แบบมัลติเธรด หากคุณกำลังใช้เวอร์ชัน 5.2.0 หรือสูงกว่าของ XZ Utils คุณสามารถใช้หลายคอร์สำหรับการบีบอัดโดยการตั้งค่า-T
หรือค่า--threads
ที่เหมาะสมผ่านตัวแปรสภาพแวดล้อม XZ_DEFAULTS (เช่นXZ_DEFAULTS="-T 0"
)
นี่คือส่วนของผู้ชายสำหรับรุ่น 5.1.0phala:
การบีบอัดและการคลายการบีบอัดแบบมัลติเธรดยังไม่ได้ใช้งานดังนั้นตัวเลือกนี้จึงไม่มีผลกระทบในตอนนี้
อย่างไรก็ตามสิ่งนี้จะไม่ทำงานสำหรับการคลายการบีบอัดไฟล์ที่ยังไม่ได้รับการบีบอัดด้วยการเปิดใช้งานเธรด จากคนสำหรับรุ่น 5.2.2:
ยังไม่ได้ใช้การบีบอัดเธรด มันจะทำงานกับไฟล์ที่มีหลายบล็อกที่มีข้อมูลขนาดในส่วนหัวของบล็อก ไฟล์ทั้งหมดที่บีบอัดในโหมดมัลติเธรดเป็นไปตามเงื่อนไขนี้ แต่ไฟล์ที่บีบอัดในโหมดเธรดเดียวจะไม่ใช้แม้ว่า --block-size = size จะถูกใช้
คอมไพล์ด้วยการเปลี่ยน
หากคุณสร้าง tar จากแหล่งข้อมูลคุณสามารถคอมไพล์ใหม่ด้วยพารามิเตอร์
--with-gzip=pigz
--with-bzip2=lbzip2
--with-lzip=plzip
หลังจากคอมไพล์ tar ใหม่ด้วยตัวเลือกเหล่านี้คุณสามารถตรวจสอบผลลัพธ์ของความช่วยเหลือของ tar:
$ tar --help | grep "lbzip2\|plzip\|pigz"
-j, --bzip2 filter the archive through lbzip2
--lzip filter the archive through plzip
-z, --gzip, --gunzip, --ungzip filter the archive through pigz