วิธีการบีบอัดข้อมูลที่เร็วที่สุดสำหรับไฟล์จำนวนมากคืออะไร?


14

ฉันจำเป็นต้องบีบอัดไดเรกทอรีที่มีไฟล์ขนาดเล็กประมาณ 350,000 ไฟล์ซึ่งมีทั้งหมด 100GB ฉันใช้ OSX และขณะนี้ใช้เครื่องมือ "บีบอัด" มาตรฐานที่แปลงไดเรกทอรีนี้เป็นไฟล์. zip มีวิธีที่เร็วกว่าในการทำเช่นนี้?


คุณอาจไม่สามารถเอาชนะ tar ได้เนื่องจากไม่ได้บีบอัดเก็บถาวรโดยไม่มีตัวเลือกเฉพาะที่เปิดใช้งาน ในคำตอบผมรักที่จะเห็นหลักฐานความคิดเห็นไม่ ...
แดเนียลเบ็ค

1
ขึ้นอยู่กับว่าคุณต้องการบีบอัดเท่าใด
ta.speot.is

1
ฉันลงเอยด้วยการใช้ tar และด้วยเหตุผลเรื่องความเร็วยังไม่ได้ลองบีบอัดเลย มันสามารถทำให้เสร็จทันเวลาสำหรับสิ่งที่ฉันต้องการ ขอบคุณ!
ขัดขวาง

@DanielBeck ปัญหาเกี่ยวกับ tar คือไม่แสดงแผนผังไดเรกทอรี ดังนั้นเพื่อให้ได้ "มุมมอง" เราจำเป็นต้องคลายซิปน้ำมันดินทั้งหมด มีทางเลือกอื่นสำหรับ tar ที่แสดงมุมมองไดเรกทอรีหรือไม่
Pacerier

คำตอบ:


15

สำหรับไดเรกทอรีฉันจะใช้tarpiped bzip2กับการบีบอัดสูงสุด

วิธีง่ายๆในการไปคือ

tar cfj archive.tar.bz2 dir-to-be-archived / 

วิธีนี้ใช้งานได้ดีหากคุณไม่ต้องการดึงไฟล์ขนาดเล็กออกจากไฟล์เก็บถาวร
และกำลังวางแผนที่จะแยกไฟล์ทั้งหมดเมื่อใดก็ตามที่ต้องการ
แต่ถ้าคุณทำต้องการที่จะได้รับชุดเล็ก ๆ ของไฟล์ออกไม่ได้เลวร้ายเกินไป

ฉันชอบเรียกไฟล์เก็บถาวรดังกล่าวfilename.tar.bz2และแยกข้อมูลด้วยxfjตัวเลือก ''

ไพพ์อัดสูงสุดมีลักษณะดังนี้

tar cf - dir-to-be-archived / | bzip2 -9 -> archive.tar.bz2  
# ^ pipe tarball จากที่นี่เพื่อ zip-in ^ ลงในไฟล์เก็บถาวร 

หมายเหตุ: bzip2วิธีการ '' และการบีบอัดข้อมูลเพิ่มเติมมีแนวโน้มที่จะช้ากว่าปกติgzipจาก ' tar cfz'

หากคุณมีเครือข่ายที่รวดเร็วและไฟล์เก็บถาวรจะถูกวางไว้ในเครื่องอื่น
คุณสามารถเร่งความเร็วด้วยไพพ์ข้ามเครือข่าย (ใช้สองเครื่องร่วมกันได้อย่างมีประสิทธิภาพ)

tar cf - dir / | ssh user @ server "bzip2 -9 -> /target-path/archive.tar.bz2"  
# ^ pipe tarball ผ่านเครือข่ายเพื่อ zip ^ และเก็บถาวรบนเครื่องระยะไกล

อ้างอิงบางอย่าง

  1. Linux Journal: เครื่องมือบีบอัดเปรียบเทียบ , 28 ก.ค. 2548
  2. gzip กับ bzip2 , 26 ส.ค. 2546
  3. เกณฑ์มาตรฐานด่วน: Gzip กับ Bzip2 เทียบกับ LZMA , 31 พฤษภาคม 2005

2
ผู้ถามถามหาวิธีที่เร็วที่สุดการบีบอัดน้ำมันดิน 100Gb จะใช้เวลาตลอดชีวิต! มีจุดหนึ่งที่พื้นที่ว่างบนดิสก์มีราคาถูกมากการเอา aeons มาบีบเอาความซ้ำซ้อนที่เป็นไปได้ทุกครั้งเป็นเพียงการสิ้นเปลืองทรัพยากรหมดสิ้นหากไม่จำเป็นจริงๆ ด้วยการใช้งานดิสก์ส่วนใหญ่ในพื้นที่หย่อนการ gzipping the tar ด้วย -1 อาจจะทำงานได้ดีพอและอนุญาตให้ย้ายไปยังงานต่อไปเมื่อสองสามเดือนก่อนหน้านี้!
Andy Lee Robinson

ในขณะที่ฉันยอมรับว่าไฟล์ 100GB อาจไม่คุ้มค่าที่จะบีบอัดเป็นจำนวนเต็ม แต่ฉันไม่คิดว่า bzip2 จะใช้เวลามากกว่า 100GB เชิงเส้นเมื่อเทียบกับ 1GB (พูด) ชอบที่จะเห็นทฤษฎีหรือข้อมูลเพื่อแสดงทั้งสองวิธี
nik

ฉันเข้าใจว่าพจนานุกรมของ bzip2 นั้นปรับตัวได้ดังนั้นจึงมีการค้นหาความซ้ำซ้อนใหม่ ๆ อยู่ตลอดเวลาในหน้าต่างค้นหาจนถึงจุดสิ้นสุดของไฟล์ ภายใต้ความเป็นเนื้อเดียวกันของเอนโทรปีของไฟล์มันควรจะเป็นเส้นตรง มันจะเป็นคอมเพรสเซอร์ที่ไม่ดีที่คิดว่ามันมีทุกอย่างที่ต้องการตั้งแต่เริ่มต้นของไฟล์เพื่อให้สามารถบีบอัดส่วนที่เหลือได้อย่างรวดเร็ว แต่ในบางกรณีอาจเป็นสิ่งที่จำเป็นทั้งหมดแม้ว่าจะมีวิธีที่ดีกว่าในการเติบโตแบบเก่า สังเกตุกับชุดข้อมูล 100GB!
Andy Lee Robinson

7

ผู้ชายคนนี้ทำการวิจัยเกี่ยวกับเรื่องนั้น ดูเหมือนว่าไฟล์. zip จะบีบอัดไฟล์ที่ใหญ่กว่าได้เร็วขึ้น อย่างไรก็ตามมันให้ขนาดการบีบอัดที่ใหญ่ที่สุดแห่งหนึ่ง ดูเหมือนว่าเขากำลังใช้ยูทิลิตี้ของ Windows อยู่ แต่ฉันคิดว่ายูทิลิตี้ของ OSX นั้นเกือบจะได้รับการปรับปรุงให้ดีที่สุด

นี่คือเว็บไซต์ที่ยอดเยี่ยมที่ยูทิลิตี้การบีบอัดจำนวนมากได้รับการกำหนดมาตรฐานสำหรับความเร็วเหนือไฟล์จำนวนมาก มีการทดสอบอื่น ๆ อีกมากมายในเว็บไซต์ที่คุณสามารถดูเพื่อกำหนดยูทิลิตี้ที่ดีที่สุดสำหรับคุณ

ความเร็วส่วนใหญ่เกี่ยวข้องกับโปรแกรมที่คุณใช้ ฉันใช้ยูทิลิตี้ของ 7zip สำหรับ Windows และฉันคิดว่ามันเร็วมาก อย่างไรก็ตามการบีบอัดไฟล์จำนวนมากใช้เวลานานไม่ว่าอะไรจะเกิดขึ้น หรือคุณอาจจะทิ้งไว้ทั้งหมดและไม่บีบอัดมัน ... โดยส่วนตัวแล้วฉันเกลียดการขยายไฟล์เก็บถาวรขนาดใหญ่ดังนั้นฉันจะระวังถ้านั่นคือสิ่งที่คุณต้องการจะทำ


0

ฉันชอบที่จะใช้

tar cf - dir-to-be-archived/ | bzip2 -9 - > archive.tar.bz2

สำหรับการย้ายไฟล์ไปยังเซิร์ฟเวอร์อื่นและครอบคลุมในเวลาเดียวกัน


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