คำสั่ง linux ใด ๆ ที่จะทำการบีบอัดไฟล์ tar.bz2 แบบขนานได้หรือไม่


17

ฉันมีไฟล์ค่อนข้างใหญ่ (~ 50GB) และใช้เวลาในการรัน

tar xvf file.tar.bz2

บนมัน ฉันตระหนักถึงโปรแกรมที่สามารถทำการบีบอัดแบบขนานสำหรับไฟล์ bzip2 แต่ไม่ทราบว่าโปรแกรมที่สามารถทำการคลายการบีบอัดแบบขนานสำหรับไฟล์ bzip2 ได้

มีโปรแกรมใดบ้างที่สามารถทำสิ่งนี้ได้? ไวยากรณ์ที่แน่นอนของคำสั่งที่ใช้เพื่อแยกจากไฟล์คืออะไร?

ฉันใช้ Ubuntu 12.04

คำตอบ:


22

lbzip2และpbzip2เป็นเครื่องมือที่คุณสามารถใช้สำหรับการบีบอัดและการบีบอัดแบบขนาน

การใช้งาน:

lbzip2 -d <file.tar.bz2> 
pbzip2 -d <file.tar.bz2> 

-d ตัวเลือกที่ใช้สำหรับการบีบอัด

ในการติดตั้งแพ็คเกจเหล่านี้:

ติดตั้ง lbzip2ประเภทlbzip2 :

sudo apt-get install lbzip2

ติดตั้ง pbzip2ประเภทpbzip2 :

sudo apt-get install pbzip2

ดังนั้นถ้าฉันเข้าใจอย่างถูกต้องฉันต้องคลายและ untar? ชอบ 2 คำสั่งตรงข้ามกับtar xvf?
user784637

1
ใช่เมื่อคุณเรียกใช้lbzip2 -d -n 2 file.tar.bz2มันจะให้ไฟล์ tar ซึ่งจะต้องมีการ untarred
devav2

1
จาก man page ของ pbzip2 (lbzip2 บอกเล่าเรื่องราวที่คล้ายกัน): "ไฟล์ที่ถูกบีบอัดด้วย pbzip2 จะได้รับความเร็วเพิ่มขึ้นอย่างมากเมื่อทำการคลายการบีบอัดโดยใช้ pbzip2 ไฟล์ที่ถูกบีบอัดโดยใช้ bzip2 จะไม่เห็นการเร่งความเร็ว ที่ไม่สามารถแยกได้ระหว่างโปรเซสเซอร์ "
Tapio

1
@Tapio นี่คือคำอธิบายสำหรับlbzip2"การบีบอัดหรือคลายการบีบอัดไฟล์ FILE หรืออินพุตมาตรฐานไปยังไฟล์ปกติหรือเอาท์พุทมาตรฐานโดยการเรียก Libbz2 ของ Julian Seward จากหลายเธรดยูทิลิตี้ lbzip2 ใช้หลายเธรดและตัวแยกสัญญาณอินพุต สร้างโดย bzip2 มาตรฐาน (แต่ดู BUGS ด้านล่าง) "
devav2

1
จากคำตอบเพียงอย่างเดียวฉันจะเข้าใจว่าทั้งสองโปรแกรมจำเป็นต้องใช้ร่วมกันอย่างใด - แต่พวกเขาดูเหมือนจะเป็นทางเลือกจริงหรือ? (มันบอกว่า "lbzip2 และ pbzip2 เป็นเครื่องมือ ... ", "การใช้งาน: lbzip2 ... pbzip2 ... ", "เพื่อติดตั้งเหล่านี้ ... ")
Volker Siegel

11

คุณสามารถคลายการบีบอัดไฟล์เก็บถาวรของคุณด้วยคำสั่งเดียวโดยใช้-Iตัวเลือกtar มันช่วยให้คุณสามารถใช้ยูทิลิตี้การบีบอัดใด ๆ ที่รองรับ-dตัวเลือก

tar -I lbzip2 -xvf <file.tar.bz2>

มันมีประโยชน์มากเมื่อทำการ deailing กับไฟล์เก็บถาวรขนาดใหญ่เนื่องจากคุณไม่จำเป็นต้องมีขนาดที่ไม่มีการบีบอัดสองเท่าในระบบไฟล์เป้าหมาย (ไฟล์ tar temp และไฟล์เอาต์พุต) มันเร็วขึ้นเมื่อคุณต้องการดิสก์ IO น้อยลง

แน่นอนว่าใช้ได้กับการบีบอัดด้วย:

tar -I lbzip2 -cvpf <file.tar.bz2> <file>

ตรวจสอบtar --helpตัวเลือกเพิ่มเติม


1
ตัวเลือกอื่น (เช่นถ้ารุ่น "tar" ของคุณไม่เข้าใจตัวเลือก -I) คือlbzip2 -dc file.tar.bz2 | tar xvf -
Wodin

5

คุณสามารถใช้ pbzip2 กับการ-dตั้งค่าสถานะเพื่อ "ขยาย"

จาก manpage:

  pbzip2 -d myfile.tar.bz2

ตัวอย่างนี้จะแตกไฟล์ "myfile.tar.bz2" ลงในไฟล์ที่คลายบีบอัด "myfile.tar" มันจะใช้ # ตรวจสอบอัตโนมัติของโปรเซสเซอร์ (หรือ 2 โปรเซสเซอร์หากตรวจจับอัตโนมัติไม่สนับสนุน)

หลังจากคลายการบีบอัดคุณจะต้องปลดไฟล์ด้วย

 tar xf myfile.tar

ไฟล์ tar เป็นเพียงคอนเทนเนอร์ซึ่งคุณสามารถใช้อัลกอริทึมการบีบอัดได้หลายแบบตัวอย่างเช่นคุณสามารถมี ".tar.gz" หรือ ".tar.bz2" ซึ่งทั้งคู่มีอัลกอริธึมการบีบอัดที่แตกต่างกัน ดังนั้น pbzip2 จะคลายการบีบอัดไฟล์ที่เก็บถาวร แต่มันจะไม่ทำการแตกไฟล์ใช้tarเพื่อแตกไฟล์ ไม่ควรใช้เวลานานเนื่องจากไฟล์เก็บถาวรนั้นไม่มีการบีบอัดและมันจะแยกไฟล์ออกมา (โปรดทราบว่าเราไม่ได้ใช้แฟล็ก 'z' หรือแฟล็ก 'j' ในคำสั่ง tar ซึ่งระบุว่าเราต้องการคลายการบีบอัดไฟล์)


1
หน้าคู่มือมีตัวอย่างที่มีประโยชน์: manpages.ubuntu.com/pbzip2
Savvas Radevic

@ Sam ขอบคุณสำหรับคำตอบ - คุณจะสามารถตอบความคิดเห็นที่ฉันทิ้งไว้กับคำตอบอื่น ๆ ได้หรือไม่
user784637

2

lbzip2 ดูเหมือนว่าจะดีกว่า pbzip2 ในกรณีของคุณเนื่องจากสามารถเร่งการบีบอัดไฟล์มาตรฐาน. bz2 ได้ในขณะที่ pbzip2 ไม่ได้ทำเช่นนั้น (เพิ่งทดสอบ - 17 วินาทีสำหรับ lbzip2 เทียบกับ 56 วินาทีสำหรับ pbzip2 บน quad core ที่โหลดบางส่วน)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.