เมื่อเร็ว ๆ นี้ฉันได้ทำการสำรองข้อมูลจำนวนมากและฉันสังเกตเห็นว่าฉันสามารถบันทึกไฟล์เป็น.gz
หรือ.tar.gz
หรือ.7z
และและ.tar.7z
อื่น ๆ อะไรคือความแตกต่างระหว่างปกติและ.tar.*
ตัวแปร? แนะนำวิธีใดในการสำรองข้อมูล
เมื่อเร็ว ๆ นี้ฉันได้ทำการสำรองข้อมูลจำนวนมากและฉันสังเกตเห็นว่าฉันสามารถบันทึกไฟล์เป็น.gz
หรือ.tar.gz
หรือ.7z
และและ.tar.7z
อื่น ๆ อะไรคือความแตกต่างระหว่างปกติและ.tar.*
ตัวแปร? แนะนำวิธีใดในการสำรองข้อมูล
คำตอบ:
หากคุณมาจากพื้นหลังของ Windows คุณอาจคุ้นเคยกับรูปแบบ zip และ rar เหล่านี้เป็นที่เก็บถาวรของหลาย ๆ ไฟล์ที่บีบอัดเข้าด้วยกัน
ในระบบ Unix และ Unix-like (เช่น Ubuntu) การเก็บถาวรและการบีบอัดจะแยกจากกัน
tar
ใส่หลายไฟล์ลงในไฟล์เดียว (tar)
gzip
บีบอัดหนึ่งไฟล์ (เท่านั้น)
ดังนั้นในการรับไฟล์บีบอัดที่เก็บถาวรคุณรวมทั้งสองใช้งานครั้งแรกtar
หรือpax
เพื่อรับไฟล์ทั้งหมดเป็นไฟล์เดียว (archive.tar) จากนั้นgzip
มัน (archive.tar.gz) หากคุณมีเพียงหนึ่งไฟล์ที่คุณต้องการในการบีบอัด (notes.txt) มีความจำเป็นในการ tar ไม่มีดังนั้นคุณก็ทำซึ่งจะส่งผลให้gzip notes.txt
notes.txt.gz
มีชนิดอื่น ๆ ของการบีบอัด, เช่นcompress
, bzip2
และxz
ที่ทำงานในลักษณะเดียวกับ gzip (นอกเหนือจากการใช้ที่แตกต่างกันของการบีบอัดของหลักสูตร)
มันขึ้นอยู่กับสิ่งที่คุณกำลังมองหา ... การบีบอัดหรือเก็บถาวร
เมื่อฉันพูดถึงการเก็บถาวรฉันหมายถึงการสงวนสิทธิ์โครงสร้างไดเรกทอรี ฯลฯ ...
การบีบอัดอาจไม่สนใจสิ่งเหล่านี้ส่วนใหญ่และเพียงนำไฟล์ของคุณไปใช้ในแพ็คเกจที่เล็กลง
หากต้องการสงวนสิทธิ์ของไฟล์ให้ใช้ tar:
tar cpvf backup.tar folder
การตั้งค่าสถานะ p จะบันทึกการอนุญาตของไฟล์ ใช้แฟล็ก z สำหรับการบีบอัด gzip หรือแฟล็ก j สำหรับการบีบอัด bzip
tar czpvf backup.tar.gz folder #backup.tgz is acceptable as well
tar cjpvf backup.tar.bz2 folder #backup.tbz2 works too
หากคุณต้องการมีไฟล์ tar คุณสามารถ "อัพเดท" แพ็คเกจ tar โดยใช้การตั้งค่าสถานะ P:
tar cpPvf backup.tar folder
จากนั้นหากต้องการอัปเดตให้แทนที่ 'c' ด้วย 'u' และเมื่อคลายไฟล์ออกมาคุณสามารถใช้ 'k' เพื่อเก็บไฟล์ที่มีอยู่แล้ว
tar upPvf backup.tar folder #updating a tar file
tar xpPkvf backup.tar #extracting a tar with permissions(p) and not extracting(k) files that exist on disk already
การตั้งค่าสถานะ P บันทึกไฟล์ด้วยเส้นทางแบบเต็มดังนั้น - / home / ชื่อผู้ใช้ vs home / ชื่อผู้ใช้ (สังเกตว่าเครื่องหมายทับหน้านำหน้า)
การบีบอัด 7z ให้การบีบอัดที่มากขึ้น แต่ไม่รักษาความเป็นเจ้าของไฟล์การอนุญาต ฯลฯ Rzip เป็นโปรแกรมบีบอัดอื่นที่ให้การบีบอัดที่เทียบเท่ากับ 7z เช่นกัน
ฉันเดาว่าไฟล์ backup.tar.7z เป็นเพียงไฟล์ tar (ที่มีสิทธิ์) ที่ถูกบีบอัดโดยไฟล์ 7z แต่ฉันจะไม่แปลกใจหากมีการบีบอัดเล็กน้อยเกิดขึ้นเนื่องจาก 7z อาจไม่สามารถถ่ายโอนเมทาดาทาของไฟล์ เป็นความสามารถของ 7z ในการแยกข้อมูลเมตาของไฟล์ที่สามารถให้การบีบอัดที่ยอดเยี่ยมได้
การบีบอัดขึ้นอยู่กับประเภทของข้อมูลเช่นกัน ไฟล์บางไฟล์ไม่สามารถบีบอัดได้ดีเนื่องจากไฟล์เหล่านั้นอาจถูกบีบอัดด้วยวิธีอื่นแล้ว (เช่น. mp3, .jpg, .tiff / ด้วย lzma, .rpm เป็นต้น)
gzip หรือ bzip2 ไม่ทราบfile system
- ชื่อไฟล์ไดเรกทอรีหรือโครงสร้างต้นไม้ เพียงแค่บีบอัดอินพุตสตรีมจากนั้นก็ส่งออกผลลัพธ์ แม้แต่ gzip หรือ bzip2 ก็ไม่สามารถเก็บไดเรกทอรีได้ด้วยตนเองนั่นคือเหตุผลที่มันมักจะรวมกับ tar
tar (archiver) - เพียงเก็บโครงสร้างของไฟล์ gzip, bzip2 (คอมเพรสเซอร์) - เพียงแค่บีบอัดอินพุต
ฉันคิดว่ากลยุทธ์นี้มาจากปรัชญา'ทำสิ่งหนึ่งที่ดี' ของ Unix ทาร์ทำงานได้ดี? ทิ้งไว้เหมือนเดิม ต้องการอัตราส่วนการบีบอัดมากกว่า gzip หรือไม่ นี่คือ bzip2 หรือ 7zip
สไตล์ที่แตกต่างของการบีบอัด tar ด้วยตัวเองนั้นถูกเก็บถาวร (เพียงเล็กน้อยถึงไม่มีการบีบอัด) tar.gz เป็นไฟล์เก็บถาวร tar แต่เนื้อหาถูกบีบอัดโดย gzip (การบีบอัดปานกลาง) ดังนั้น. gz และ tar.7z จึงถูกบีบอัดโดยใช้ 7zip (โดยปกติคือการบีบอัดสูงมาก)
เมื่อทำการสำรองข้อมูลฉันขอแนะนำ tar.7z เนื่องจากมีอัตราการบีบอัดข้อมูลสูงสุดที่ช่วยประหยัดพื้นที่ของคุณ แต่ใช้โปรแกรมพิเศษ (7zip) . tar.gz จะเป็นไฟล์ที่มีขนาดใหญ่ขึ้นและทำงานเดียวกันคุณสามารถใช้ bzip (.tar.bz / bz2) ได้แม้ว่าฉันจะไม่แน่ใจว่ามันจะเหมาะกับคุณมากกว่าที่ฉันใช้ gzip หรือ 7zip
โดยทั่วไปแล้วไฟล์ *. tar เป็นเพียงไฟล์ tar ที่สร้างขึ้นโดยโปรแกรม tar, * .gz โปรแกรมที่สร้างโดย gzip, * .tar.gz (บางครั้งก็เป็น * .tgz) เป็นไฟล์ tar ที่ gziped และ * .7z ถูกสร้างขึ้นโดย 7zip
อย่างไรก็ตามใน Linux / Unix เราสามารถตั้งชื่อไฟล์ได้ค่อนข้างมากอย่างไรก็ตามเขาต้องการมันขึ้นอยู่กับดุลยพินิจของผู้สร้างไฟล์
Tar (Tape Archiver) มีการใช้แบบดั้งเดิมเป็นคอนเทนเนอร์ใน Unix / Linux ไปยังไฟล์แพ็กเกจสำหรับการเคลื่อนไหว มันจัดทำโครงสร้างไฟล์และคงคุณสมบัติของไฟล์ไว้ แต่จะไม่บีบอัดไฟล์
โปรแกรมบีบอัดบีบอัดไฟล์เพื่อให้มีขนาดเล็กลง แต่อาจไม่รองรับไฟล์หลายไฟล์และ / หรืออาจไม่รองรับคุณสมบัติไฟล์ที่จำเป็นสำหรับ Linux เนื่องจาก tar มีอยู่แล้วและได้รับการสนับสนุนเป็นอย่างดีไม่มีเหตุผลสำหรับการเก็บถาวรโปรแกรมเพื่อทำซ้ำฟังก์ชันการทำงานนี้ซึ่งเป็นเฉพาะแพลตฟอร์ม (แตกต่างกันสำหรับ Windows และ Linux) นอกจากนี้โปรแกรมบีบอัดที่แตกต่างกันอาจทำงานแตกต่างกันไปตามประเภทไฟล์ที่แตกต่างกันดังนั้นการเลือกมากกว่าหนึ่งไฟล์เป็นสิ่งที่ต้องการ
.7z
เก็บถาวรจากหลาย ๆ ไฟล์ในขณะที่ฉันยังสามารถทำการ.tar.7z
เก็บถาวรจากหลาย ๆ ไฟล์ได้?