Sự khác biệt giữa .tar.gz và .gz, hoặc .tar.7z và .7z là gì?


158

Gần đây, tôi đã được sao lưu nhiều dữ liệu của tôi, và tôi nhận thấy rằng tôi có thể lưu các tập tin như .gzhay .tar.gz, hay .7z.tar.7z, Etcetera. Sự khác biệt giữa bình thường và .tar.*biến thể là gì? Mà một trong số họ được khuyến khích khi thực hiện sao lưu?

Câu trả lời:


183

Nếu bạn đến từ nền Windows, bạn có thể quen với các định dạng zip và rar. Đây là tài liệu lưu trữ của nhiều tập tin được nén lại với nhau.

Trong các hệ thống tương tự Unix và Unix (như Ubuntu), lưu trữ và nén là riêng biệt.

tar đặt nhiều tệp vào một tệp (tar).

gzip nén một tập tin (chỉ).

Vì vậy, để có được một kho lưu trữ nén, bạn kết hợp cả hai, trước tiên sử dụng tarhoặc paxđể có được tất cả các tệp thành một tệp duy nhất (archive.tar), sau đó là gzipnó (archive.tar.gz). Nếu bạn chỉ có một tệp bạn cần nén (Notes.txt), thì không cần tar, vì vậy bạn chỉ cần làm điều gzip notes.txtđó sẽ dẫn đến notes.txt.gz. Có các loại nén khác, chẳng hạn như compress, bzip2xzhoạt động theo cách tương tự như gzip (tất nhiên ngoài việc sử dụng các loại nén khác nhau)


6
Điều đó có ý nghĩa, nhưng sau đó, tại sao tôi có thể tạo một .7zkho lưu trữ từ nhiều tệp, trong khi tôi cũng có thể tạo một .tar.7zkho lưu trữ từ nhiều tệp?
Tăng tốc-G

3
@ Exeleration-G 7zip không tuân theo sơ đồ này. Nó giống như zip và rar. Không chắc ý nghĩa của việc sử dụng tar kết hợp với 7zip là gì vì bản thân tôi chưa sử dụng 7zip.
geirha

42
@ Exeleration-G Sau khi đọc qua các câu trả lời khác, tôi thấy SaultDon trả lời điều này; 7zip không lưu trữ quyền sở hữu unix và sự cho phép của các tệp được lưu trữ (dường như chủ yếu hướng đến Windows, như zip và rar), do đó, nên kết hợp nó với tar để có quyền sở hữu và quyền được bảo toàn.
geirha

@geirha Đánh dấu câu hỏi là đã giải quyết nếu bạn tìm thấy câu trả lời thích hợp.
Ravi

1
Theo kinh nghiệm của tôi, 7z nén tốt hơn nhiều so với zip. Khi tôi kiểm tra, nó đã tiết kiệm cho tôi khoảng 40% thêm
Eoin

49

Nó phụ thuộc vào những gì bạn đang tìm kiếm ... Nén hoặc lưu trữ?

Khi tôi nói về việc lưu trữ, tôi có nghĩa là giữ quyền, cấu trúc thư mục, v.v ...

Nén có thể bỏ qua hầu hết điều đó và chỉ nhận các tệp của bạn trong một gói nhỏ hơn.

Để duy trì quyền truy cập tệp, sử dụng tar:

tar cpvf backup.tar folder

Cờ p sẽ lưu quyền truy cập tập tin. Sử dụng cờ z để nén gzip hoặc cờ j để nén bzip.

tar czpvf backup.tar.gz folder #backup.tgz is acceptable as well
tar cjpvf backup.tar.bz2 folder #backup.tbz2 works too

Nếu bạn muốn có một tệp tar, bạn có thể "cập nhật" gói tar bằng cờ P:

tar cpPvf backup.tar folder

Sau đó, để cập nhật, thay thế 'c' bằng 'u' và khi giải nén, bạn có thể sử dụng 'k' để giữ các tệp đã tồn tại.

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

Cờ P lưu các tệp với đường dẫn đầy đủ, vì vậy - / home / tên người dùng so với nhà / tên người dùng (chú ý dấu gạch chéo về phía trước).

Nén 7z cung cấp khả năng nén lớn hơn, nhưng không bảo toàn quyền sở hữu tệp, quyền, v.v. Rzip là một tiện ích nén khác cung cấp khả năng nén tương đương với 7z.

Tôi đoán rằng tệp backup.tar.7z chỉ là một tệp tar (có quyền) được nén bởi tệp 7z, mặc dù tôi sẽ không ngạc nhiên nếu xảy ra nén ít vì 7z có thể không thể kết xuất siêu dữ liệu của tệp. Đó là khả năng của 7z để loại trừ siêu dữ liệu tệp mà nó có thể cung cấp khả năng nén tuyệt vời (trong số những thứ khác tất nhiên).

Nén phụ thuộc hoàn toàn vào loại dữ liệu là tốt. Một số tệp không nén tốt vì chúng có thể đã được nén bằng một số phương tiện khác (ví dụ: .mp3, .jpg, .tiff / với lzma, .rpm, v.v.).


11

gzip hoặc bzip2 không biết về file system- tên tệp, thư mục hoặc cấu trúc cây. Nó chỉ nén luồng đầu vào, sau đó xuất kết quả. Ngay cả gzip hoặc bzip2 cũng không thể tự lưu trữ các thư mục, đó là lý do tại sao nó thường được kết hợp với tar.

tar (archiver) - chỉ lưu trữ cấu trúc tệp. gzip, bzip2 (máy nén) - chỉ cần nén đầu vào.

Tôi nghĩ rằng chiến lược này xuất phát từ triết lý Unix 'làm một điều tốt' . Tar hoạt động tốt? Để nó như vậy. Cần tỷ lệ nén nhiều hơn gzip? Đây là bzip2 hoặc 7zip.


Trên thực tế 7zip có thể lưu trữ như zip hoặc rar.
Mait

8

các kiểu nén khác nhau của nó, tar tự nó được lưu trữ đơn giản (ít hoặc không nén). tar.gz là một kho lưu trữ tar nhưng nội dung được nén bằng gzip (nén vừa phải) do đó .gz và tar.7z được nén bằng 7zip (thường là nén siêu cao)

khi sao lưu, tôi khuyên dùng tar.7z vì nó có tốc độ nén cao nhất giúp bạn tiết kiệm không gian nhưng sử dụng một chương trình bổ sung (7zip). .tar.gz sẽ là các tệp lớn hơn và thực hiện cùng một công việc, bạn cũng có thể sử dụng bzip (.tar.bz / bz2) mặc dù tôi không chắc liệu điều đó có phù hợp với bạn hơn không khi tôi sử dụng gzip hoặc 7zip


4

thông thường, các tệp * .tar chỉ là các tệp tar được tạo bởi chương trình tar, các chương trình * .gz được tạo bởi gzip, * .tar.gz (đôi khi cũng là * .tgz) là các tệp tar được nén và * .7z được tạo bởi 7zip.

Tuy nhiên, trong Linux / Unix, người ta có thể đặt tên cho một tệp khá nhiều theo bất kỳ cách nào anh ta muốn, do đó, nó hoàn toàn theo ý của người tạo ra các tệp.


3

Tar (Băng Archiver) theo truyền thống đã được sử dụng như một thùng chứa trong Unix / Linux để đóng gói các tệp cho chuyển động. Nó đóng gói cấu trúc tệp và duy trì các thuộc tính tệp, nhưng nó không nén các tệp.

Các chương trình nén nén tệp để làm cho nó nhỏ hơn, nhưng chúng có thể không xử lý nhiều tệp và / hoặc chúng có thể không xử lý các thuộc tính tệp cần thiết cho Linux. Vì tar đã tồn tại và được hỗ trợ tốt, không có lý do gì để lưu trữ các chương trình để sao chép chức năng này, đặc trưng cho nền tảng (lại khác với Windows và Linux). Ngoài ra, các chương trình nén khác nhau có thể thực hiện khác nhau trên các loại tệp khác nhau, do đó, có nhiều lựa chọn hơn một tệp là mong muốn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.