ความแตกต่างของไฟล์เก็บถาวร. tar ประเภทต่างๆทั้งหมดคืออะไร


16

ใครช่วยบอกฉันได้ว่ามีอะไรเกิดขึ้นกับคลังเก็บมากมายและแตกต่างกันอย่างไร

มีอย่างน้อยห้าที่ฉันสามารถคิด.tar.tz, .tar.gz, .tar.bz2, .tar.lz,.tar.z

แอพพลิเคชั่นใดดีที่สุด? ดูเหมือนว่าโง่ที่จะสร้างไฟล์เดียวกันหลายรูปแบบ แต่ฉันแน่ใจว่ามีเหตุผล

คำตอบ:


18

.gz, .xz, .bz2, .7z, .lz, .zต่อท้ายจะใช้เพื่อให้ชัดเจนว่าไฟล์จะถูกบีบอัดด้วยวิธีการบีบอัดกล่าวว่า มันใช้ไม่ จำกัด.tarไฟล์คุณยังจะเห็นไฟล์เช่นinitrd.gz(ramdisk เริ่มต้นที่บีบอัด) หรือmanual.txt.gz(สำหรับเอกสารข้อความที่บีบอัด) คุณอาจจะเห็นfile.tgzว่าตัวไหนบ่งบอกถึง tarball ที่ถูกบีบอัดด้วย gzip (เช่นfile.tar.gz)

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

$ file data.tar.gz
data.tar.gz: gzip compressed data, from Unix
$ gunzip -c data.tar.gz | file -
/dev/stdin: POSIX tar archive (GNU)

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


8

นอกเหนือจากคำตอบ @Lekensteyn ฉันต้องการเพิ่มว่าพฤติกรรมนี้ขึ้นอยู่กับการทำสิ่งหนึ่งและทำปรัชญาให้ดี - tarโปรแกรมรู้วิธีใส่หลายไฟล์ลงในสตรีมเดียว (พร้อม.tarส่วนขยาย) gzipรู้วิธีบีบอัดไฟล์ ไฟล์เดียว (เพิ่ม.gzส่วนขยาย) * โดยการรวมเครื่องมือเหล่านั้นคุณสามารถสร้างคำสั่งที่บีบอัดหลายไฟล์เป็น.tag.gzไฟล์เดียว

วิธีการนี้มีความยืดหยุ่นมาก - คุณสามารถรวมคำสั่ง Unix มาตรฐานไม่กี่คำเพื่อทำสิ่งต่าง ๆ ตัวอย่างเช่นหากคุณเขียนโปรแกรมที่ดีกว่าในการบีบอัดไฟล์คุณไม่จำเป็นต้องแก้ไขtarเพื่อเปิดใช้งานเพื่อสร้าง.tar.mymegazipไฟล์ - แต่คุณเพียงแค่tarเอาท์พุทของท่อไปยังคอมเพรสเซอร์ของคุณ

ในทำนองเดียวกันtarรู้อะไรเกี่ยวกับ SSH แต่โดยการรวมคำสั่งคุณสามารถสร้างสคริปต์ที่เก็บไฟล์อัปโหลดไปยังเครื่องระยะไกลผ่าน SSH และยกเลิกการเก็บถาวรมี

เปรียบเทียบสิ่งนี้กับzipคำสั่งซึ่งไม่ได้เกิดใน Unix - มีเครื่องมือในตัวที่จะบีบอัดไดเรคทอรีทั้งหมดเข้ารหัสไฟล์แยกการจัดเก็บลงใน zipfiles ขนาดเล็กเป็นต้น


(เชิงอรรถ) - ใช่tarสามารถใช้ไฟล์ gzip หรือ bzip ได้ด้วยตนเอง-zและ-jสวิตช์มันถูกเพิ่มเพื่อความสะดวกและ GNU tar นั้นกำลังวางไข่gzipหรือbzip2เป็นกระบวนการใหม่


ตัวอย่าง: คำสั่งtar c dir/ | gzip > dir.tar.gzและtar czf dir.tar.gz dir/คำสั่งทำสิ่งเดียวกัน ตัวอย่างที่tarจะถูกรวมกับ SSH และtar(อีกครั้ง): tar cz Documents/ | ssh user@host 'tar xz(เทียบเท่า rsync จะเป็น: rsync -a Documents user@host:)
Lekensteyn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.