ฉันทำงานในสภาพแวดล้อม Linux และต้องการทราบเกี่ยวกับคำสั่ง tar และ zip
ซึ่งมีประสิทธิภาพมากขึ้น - tar หรือ zip? ฉันต้องทราบความแตกต่างระหว่างคำสั่ง tar และ zip ทุกคนสามารถอธิบายให้ฉันได้ไหม
ฉันทำงานในสภาพแวดล้อม Linux และต้องการทราบเกี่ยวกับคำสั่ง tar และ zip
ซึ่งมีประสิทธิภาพมากขึ้น - tar หรือ zip? ฉันต้องทราบความแตกต่างระหว่างคำสั่ง tar และ zip ทุกคนสามารถอธิบายให้ฉันได้ไหม
คำตอบ:
tar
สร้างไฟล์เดียวจากหลายไฟล์โดยไม่บีบอัดเว้นแต่จะรวมโปรแกรมบีบอัดเช่นgzip
หรือbzip2
(ซึ่งคุณสามารถโทรจากภายในtar
โดยใช้-z
หรือ-j
ตัวเลือกตามลำดับ) zip
รวมทั้งการเก็บถาวรและการบีบอัดในโปรแกรมเดียว
น้ำมันดิน
ซิป
ความจริงที่ว่า zip บีบอัดไฟล์แยกกันจะส่งผลต่ออัตราส่วนการบีบอัดโดยเฉพาะอย่างยิ่งในไฟล์ขนาดเล็กที่คล้ายกัน
(อย่างน้อยก็ถูกต้องตรงนี้เมื่อสิบปีก่อน)
Tar เก็บรักษาข้อมูลเมตามากกว่า Zip ดูการเปรียบเทียบของฉัน (มันล้าสมัยเล็กน้อย):
(คลิกเพื่อขยาย)
ทาร์ผ่านการทดสอบ 65% โดยที่ Zip ผ่านการทดสอบ 17% เท่านั้น ฉันได้จัดทำชุดทดสอบบน github ภายใต้ใบอนุญาต BSDเพื่อให้คุณสามารถลองด้วยตัวคุณเองถ้าคุณมี Mac สำหรับ linux นั้นฉันไม่แน่ใจว่ามี metadata ใด ๆ หรือไม่ดังนั้นการทดสอบเหล่านี้อาจไม่เกี่ยวข้อง
สามารถวัดประสิทธิภาพได้หลายวิธี:
มีคำถามอื่นด้วยเช่น "เครื่องมือทั่วไปในการจัดการกับไฟล์เก็บถาวรที่เกิดขึ้นเป็นอย่างไร"
ตัวอย่างเช่นbzip2
สร้างไฟล์ที่เล็กกว่าgzip
แต่อาจใช้เวลานานกว่ามาก นอกจากนี้ในประสบการณ์ของฉันgzip
เป็นสากลในระบบที่คล้าย Unix แต่bzip2
ก็ยังไม่ (แม้ว่าจะเป็นเรื่องปกติและมักจะได้รับ)
ดังที่ Wim ตั้งข้อสังเกตว่า tar เองไม่ได้บีบอัด หากคุณเพิ่มการบีบอัด tar (เช่นเพื่อรับ. tar.gz หรือ. tar.bz2) แสดงว่าคุณกำลังบีบอัดไฟล์ tar ทั้งหมดในครั้งเดียว ในทางตรงกันข้าม zip บีบอัดไฟล์แต่ละไฟล์แยกกัน
ประสิทธิภาพขึ้นอยู่กับปริมาณงาน โดยเฉพาะ zip ช่วยให้คุณสามารถเข้าถึงไฟล์แต่ละไฟล์ได้โดยตรง ด้วย tar คุณต้องค้นหาไฟล์ที่ไม่ต้องการ (บีบอัด) ก่อนก่อน ประสิทธิภาพการบีบอัดขึ้นอยู่กับสิ่งที่คุณกำลังบีบอัด tar
ด้วยbzip2
มักจะดีกว่าสำหรับไฟล์ที่คล้ายกันจำนวนมาก (เช่นไดเรกทอรีต้นทาง) zip
อาจดีกว่านี้ถ้าแต่ละไฟล์มีเนื้อหาแตกต่างกันมาก
ไฟล์เก็บถาวร Zip มีไดเรกทอรีกลางของเนื้อหาในตอนท้าย (ส่วนใหญ่จะหลีกเลี่ยงการสร้างไดเรกทอรีไว้ล่วงหน้าซึ่งคุณยังไม่รู้ว่าจะอยู่ภายใน) วิธีนี้ช่วยให้สามารถแตกไฟล์เดียวได้อย่างรวดเร็วโดยไม่ต้องแยกไฟล์เก็บถาวรทั้งหมด: เพียงแค่อ่านไดเรกทอรีเก็บถาวรและแตกเฉพาะสิ่งที่จำเป็น อย่างไรก็ตามสิ่งนี้ต้องการให้ไฟล์เก็บถาวรทั้งหมดนั้นสามารถเข้าถึงได้และต้องมีการเข้าถึงแบบสุ่มซึ่งมีเฉพาะในอุปกรณ์บล็อกเท่านั้น (ฟลอปปี้ดิสก์, ฮาร์ดไดรฟ์) นอกจากนี้ไดเร็กทอรีเก็บถาวรมีความเสี่ยง: หากไฟล์เก็บถาวรถูกตัดทอนด้วยเหตุผลบางอย่างจำเป็นต้องใช้พ่อมดแม่มดจำนวนมากเพื่อแยกสิ่งที่มีประโยชน์ออกจากไฟล์เก็บถาวร
Zip zip ถูกสร้างขึ้นสำหรับการใช้งาน BBS ซึ่งเป็นสิ่งสำคัญที่จะสามารถรวมเนื้อหาของไดเรกทอรีเป็นไฟล์เดียว (และบีบอัด) เดียว --- แทนที่จะต้องดาวน์โหลดไฟล์หลายพันไฟล์ เหมือนกับเว็บไซต์ส่วนใหญ่ที่รวมการดาวน์โหลดไว้ทุกวันนี้ด้วยเหตุผลเดียวกัน
กลาสีเรือที่เก็บได้วางแผนสำหรับการผนวกการสำรองข้อมูลเพื่อนำมาใช้สำหรับเทปไดรฟ์เพราะฉะนั้นสำหรับเข้าถึงลำดับ ไม่มีไดเรกทอรีกลาง ไฟล์เก็บถาวรจะมีบล็อกส่วนหัวในช่วงเวลาปกติซึ่งจะระบุว่าไฟล์ใดจะตามมาในบล็อกถัดไป จดหมายเหตุกลามีจุดประสงค์เพื่อให้อ่านในคราวเดียว ถ้าจะแตกไฟล์เพียงไฟล์เดียวไฟล์เก็บถาวรจะถูกอ่านตามลำดับโดยเริ่มจากจุดเริ่มต้นจนกระทั่งพบไฟล์ที่ร้องขอ (ซึ่งอาจอยู่ที่ท้ายสุดด้วย) การบีบอัดถูกนำไปใช้ด้านบนของที่; แต่ละโปรแกรมบีบอัดต่างๆที่จะนำไปใช้ที่เก็บน้ำมันดิน ( compress
, gzip
,bzip2
เป็นต้น) เป็นสตรีมคอมเพรสเซอร์และไม่เปลี่ยนแปลงลักษณะที่เป็นลำดับของไฟล์เก็บถาวรในทุกเรื่อง ในกรณีที่เลวร้ายที่สุดคุณจะต้องมีบล็อกเพิ่มขึ้นอีกเล็กน้อยจนกว่าคุณจะเริ่มคลายไฟล์ได้
สิ่งนี้อาจฟังดูแตกต่างเล็กน้อย แต่ในความเป็นจริงแล้วตรงกันข้ามกับขั้วในปรัชญา ด้วยไฟล์เก็บถาวร zip คุณจำเป็นต้องมีไฟล์ทั้งหมดในมือเพื่อทำสิ่งที่มีประโยชน์เสมอในขณะที่ไฟล์เก็บถาวร tar สามารถสตรีมไปยังไพพ์ไลน์ได้ ฉันสามารถดาวน์โหลดไฟล์เก็บถาวร tar ขนาดใหญ่และเริ่มดึงข้อมูลได้ตั้งแต่เริ่มต้นทันทีที่มีบล็อกสองสามตัวแรกเข้ามา (และอาจขัดขวางการดาวน์โหลดทันทีที่ฉันได้รับไฟล์ที่ฉันต้องการ) สำหรับ Zip ไฟล์เก็บถาวรฉันต้องรอจนกระทั่งไดเรคทอรี่เก็บถาวรปรากฏขึ้นซึ่งอยู่ที่ส่วนท้ายสุดของไฟล์เก็บถาวร แต่เมื่อผมทำมีไฟล์ทั้งหมดที่อยู่ในมือสกัดเนื้อหาบางส่วนจากมันจะเร็วมากจากแฟ้มน้ำมันดิน
รูปแบบทั้งสองมีจุดที่แข็งแกร่งมากสำหรับพวกเขาขึ้นอยู่กับตำแหน่งและวิธีการใช้งาน ตั้งแต่ท่อ (และความคิดในการสตรีมข้อมูลจากกระบวนการหนึ่งไปสู่อีกกระบวนการ) นั้นมีอยู่จริงในโลกของ Unix เท่านั้นข้อได้เปรียบหลักของ tar archives จะหายไปในระบบอื่น ๆ แต่ที่เก็บถาวร tar มีความยืดหยุ่นมากขึ้นซึ่งเป็นเหตุผลที่ฉันชอบพวกเขาเมื่อใดก็ตามที่ฉันมีทางเลือก
ดังที่ได้กล่าวไปแล้ว tar สร้าง "บล็อก" ขนาดใหญ่ของไฟล์ทั้งหมดที่สามารถบีบอัดด้วยสตรีม comrpessor เช่น gzip หรือ bzip2
ข้อเสียของสิ่งนี้คือคุณต้องแตกไฟล์ทั้งหมดเพื่อเข้าถึงไฟล์เดียวภายในไฟล์เก็บถาวร
ข้อดีของการทำเช่นนี้คืออัตราส่วนการบีบอัดมักจะสูงกว่าโดยเฉพาะอย่างยิ่งเมื่อไฟล์บีบอัดคล้ายกันมาก
ผู้แบ่งบรรจุรายอื่นเช่น "rar" มี "โหมดบล็อก" (หรือคล้ายกัน) เพื่อให้มีผลเหมือนกัน