บน Linux / Unix. tar.gz กับ. zip มีความสำคัญหรือไม่


69

บางครั้งโปรแกรมข้ามแพลตฟอร์มจะแจกจ่ายเป็น. tar.gz สำหรับรุ่น Unix และ. zip สำหรับรุ่น Windows สิ่งนี้สมเหตุสมผลเมื่อเนื้อหาของแต่ละรายการต้องแตกต่างกัน

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

คำตอบ:


28

Necromancing
ใช่มันเป็นเรื่องสำคัญ
จริง ๆ แล้วมันขึ้นอยู่กับ

tar.gz

  • เก็บแอตทริบิวต์ของไฟล์ unix : uid, gid, การอนุญาต (ที่สามารถเรียกใช้งานได้) ค่าเริ่มต้นอาจขึ้นอยู่กับการกระจายของคุณและสามารถสลับกับตัวเลือก
  • รวมไฟล์ทั้งหมดที่จะเก็บถาวรในไฟล์เดียว ("Tape ARchive")
  • การบีบอัดจริงทำได้โดย GZIP ในไฟล์. tar ไฟล์เดียว

ซิป

  • ร้านค้าแอตทริบิวต์ MSDOS (เก็บถาวรอ่านอย่างเดียวซ่อนระบบ)
  • บีบอัดแต่ละไฟล์แยกจากนั้นรวมไฟล์บีบอัดทีละไฟล์ในไฟล์เดียว
  • รวมตารางไฟล์ท้ายไฟล์

เนื่องจาก zip บีบอัดไฟล์เป็นเอกเทศไฟล์เก็บถาวร zip มักจะมีขนาดใหญ่กว่า (โดยเฉพาะกับไฟล์ขนาดเล็กจำนวนมาก - คิดว่าไฟล์ปรับแต่ง)

ดังนั้นคุณจะเห็นได้จากขนาดของไฟล์ถ้าคุณซิปไฟล์บน Linux / Unix จากนั้นทำการแตกไฟล์ออกคุณสมบัติของไฟล์จะหายไป (อย่างน้อยที่สุดไฟล์ที่ไม่รองรับโดย MS-DOS - ขึ้นอยู่กับ ZIP - ซอฟต์แวร์ที่คุณใช้) สิ่งนี้อาจสำคัญหรือไม่ก็ได้ซึ่งในกรณีนี้มันไม่สำคัญ (เนื่องจากความแตกต่างของขนาดไฟล์เป็นส่วนใหญ่เล็กน้อย)


10
distro มาตรฐานของ zip บนระบบที่เหมือนยูนิกซ์ (info-zip) ยังเก็บแอตทริบิวต์ของไฟล์ unix
Erik Aronesty

35

tar gz ดีกว่าสำหรับ Linux / Unix เนื่องจากยังคงมีการอนุญาตเช่น "executable" บนสคริปต์


8
ยูทิลิตี้เก็บถาวรของ OS X และ zip / unzip สงวนสิทธิ์ แต่อาจมียูทิลิตี้อื่น ๆ ที่ไม่มี
Lri

4
เครื่องมือ zip / unzip มาตรฐาน (info-zip) จะเก็บสิทธิ์บน linux และ timestamps บน windows ดู: en.wikipedia.org/wiki/Info-ZIPสำหรับความสามารถทั่วไป ... ซึ่งเอาชนะปัญหาการอนุญาตและข้อ จำกัด ขนาดไฟล์ขณะที่ยังคงเข้าถึงแบบสุ่มที่ต้องการและคุณสมบัติการเก็บถาวรที่แก้ไขได้
Erik Aronesty

33

Linux distros ที่ได้รับความนิยมมากที่สุดในทุกวันนี้มักมีzipความเข้ากันได้ แต่ตามที่ระบุไว้โดย nc3b tarและgzipพบได้ทั่วไปในระบบ Linux / Unix หากคุณจำเป็นต้องเข้ากันได้ 95% ในระบบเหล่านี้ให้พิจารณาการใช้และtar gzipหากคุณต้องการเพียง 85% zipจะทำได้ดี


2
ตกลง 95% ดีกว่า 85% :-) คำถามเล็ก ๆ น้อย ๆ มันจะสำคัญไหมถ้านามสกุลไฟล์เป็น. tgz แทนที่จะเป็น. tar.gz?
rwallace

8
ส่วนขยายไม่สำคัญเลยมันใช้สำหรับการอ้างอิงโดยผู้ใช้และโปรแกรมเท่านั้น หากส่วนขยายคือ. XXX และคุณรู้ว่าเป็น. tar คุณยังสามารถใช้ tar เพื่อปลดล็อกได้ .tgz และ. tar.gz ทั้งคู่ต่างก็มีนามสกุลและไฟล์เดียวกันซึ่งมีนามสกุลเหล่านี้จะคล้ายคลึงกัน
BloodPhilia

2
ในทางตรงกันข้ามสำหรับความเข้ากันได้ 100% บน Windows คุณจะต้องใช้ cab
kinokijuf

3
tar จะเก็บ uid, gid และการอนุญาตเช่น + x บนระบบยูนิกซ์ zip เก็บถาวรอ่านอย่างเดียวซ่อนเร้นและระบบบนระบบ windows
Andrew De Andrade

1
@mtak คุณสามารถใช้gunzip --suffix .zip npm-debug.log.zipหรือgunzip -c < npm-debug.log.zip > npm-debug.log
Iwan Aucamp

19

tar / gzip เป็นรูปแบบเส็งเคร็งที่สวยงามเนื่องจากไฟล์เก็บถาวรไม่สามารถเข้าถึงสุ่มตรวจสอบตรวจสอบหรือผนวกเข้ากับ ... โดยไม่ต้องคลายการบีบอัดไฟล์ทั้งหมด

zip นั้นดีกว่ามากในเรื่องนั้น .... คุณสามารถรับเนื้อหาของไฟล์ zip ได้อย่างรวดเร็วผนวกเข้ากับมันโดยไม่ต้องบีบอัดส่วนแรกเป็นต้น

zip มีข้อ จำกัด ด้านขนาด ... ขึ้นอยู่กับรุ่นของ "zip" ที่คุณใช้ ... และสิ่งเหล่านี้อาจเป็นปัญหาได้ แต่เครื่องมือ info-zip มาตรฐานที่มาพร้อมกับระบบปฏิบัติการคล้าย linux ส่วนใหญ่ไม่มีข้อ จำกัด ด้านขนาดและคงสิทธิ์การใช้ไฟล์ไว้ได้ดี

ดู: https://en.wikipedia.org/wiki/Info-ZIPสำหรับความสามารถ


คุณกำลังพูดถึงข้อ จำกัด ประเภทใด?
Pacerier

แก้ไขและให้ลิงก์
Erik Aronesty

9

เล่าเรื่องการติดตั้งระบบปฏิบัติการยูนิกซ์ไม่ได้มีเครื่องรูด (เซิร์ฟเวอร์เช่นการติดตั้ง) แต่พวกเขามักจะประกอบด้วยtarและgzip หากผู้ชมของคุณมีเซิร์ฟเวอร์ผมต้องการไปสำหรับgzip

นอกจากนี้gzipยังมีการบีบอัดมากกว่าzipดังนั้นไฟล์จะเล็กลง


1
ฉันจะไม่พูดว่า gzip บีบอัดได้ดีกว่า ZIP ทั้งคู่ใช้อัลกอริธึม DEFLATE เดียวกันและการเปรียบเทียบทั้งหมดที่ฉันทำไปนั้นให้ผลลัพธ์ที่คล้ายกันในขนาดไฟล์
grawity

4
tar.gz จะบีบอัดไฟล์ทั้งหมดในครั้งเดียวในขณะที่ zip บีบอัดไฟล์แยกกัน สำหรับไฟล์ขนาดเล็กจำนวนมากวิธีแรกมักจะสร้างไฟล์ที่เล็กกว่าอย่างเห็นได้ชัดเพราะความซ้ำซ้อนสามารถใช้ข้ามไฟล์ได้ ความแตกต่างนั้นไม่มากนัก
sleske

3

ใช่มันเป็นเรื่องสำคัญ ทาร์เป็นผู้เก็บเอกสาร และใน tar.gz เราบีบอัดไฟล์เก็บถาวรนั้น

Zip เป็นทั้งคลังเก็บและคอมเพรสเซอร์

หากคุณเปรียบเทียบการบีบอัดจากประสบการณ์ของฉัน gzip ดีกว่า zip มาก

และความแตกต่างอย่างมีนัยสำคัญอื่น ๆ ที่กล่าวถึงในคำตอบอื่น หากคุณมีไฟล์เก็บถาวรขนาดใหญ่มากและต้องการแตกไฟล์ขนาดเล็ก Zip ให้คุณทำเช่นนั้นได้ แต่ด้วย tar.gz คุณจะต้องแตกไฟล์เก็บถาวรทั้งหมด


ไม่ใช่ไฟล์เก็บถาวรของไฟล์ gzipped แต่เป็นไฟล์เก็บถาวร gzip นั่นเป็นเหตุผลที่คุณต้องแยกไฟล์เก็บถาวรทั้งหมด
m93a

2

การตัดสินใจโดยทั่วไปมาจากสิ่งเหล่านี้:

  • GZIP เก็บสิทธิ์การใช้งานไฟล์ Unix ไว้เป็นไฟล์ที่อนุญาตให้เรียกใช้

  • ในทางกลับกัน ZIP ทำงานนอกกรอบใน Windows


1

tarและgzipมีจำนวนมากที่พบเพิ่มเติมเกี่ยวกับศูนย์ *-ES unzipกว่า ยกตัวอย่างเช่นในขณะนี้บนของโค้ง 2,009.08 unzipไม่มี


6
แต่มีbsdtar(ส่วนหนึ่งlibarchive) ซึ่งจัดการ ZIP ได้ดี
grawity

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