ใครช่วยบอกฉันได้ว่ามีอะไรเกิดขึ้นกับคลังเก็บมากมายและแตกต่างกันอย่างไร
มีอย่างน้อยห้าที่ฉันสามารถคิด.tar.tz
, .tar.gz
, .tar.bz2
, .tar.lz
,.tar.z
แอพพลิเคชั่นใดดีที่สุด? ดูเหมือนว่าโง่ที่จะสร้างไฟล์เดียวกันหลายรูปแบบ แต่ฉันแน่ใจว่ามีเหตุผล
ใครช่วยบอกฉันได้ว่ามีอะไรเกิดขึ้นกับคลังเก็บมากมายและแตกต่างกันอย่างไร
มีอย่างน้อยห้าที่ฉันสามารถคิด.tar.tz
, .tar.gz
, .tar.bz2
, .tar.lz
,.tar.z
แอพพลิเคชั่นใดดีที่สุด? ดูเหมือนว่าโง่ที่จะสร้างไฟล์เดียวกันหลายรูปแบบ แต่ฉันแน่ใจว่ามีเหตุผล
คำตอบ:
.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
) เป็นไฟล์ที่พบบ่อยที่สุด มันเร็วในการบีบอัดและคลายการบีบอัดแม้ว่าจะมีอัลกอริทึมอื่นที่ให้อัตราส่วนการบีบอัดที่ดีกว่า
นอกเหนือจากคำตอบ @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:
)