Apa perbedaan antara .tar.gz dan .gz, atau .tar.7z dan .7z?

158

Baru-baru ini, saya telah mencadangkan banyak data saya, dan saya menyadari bahwa saya bisa menyimpan file sebagai .gzatau .tar.gz, atau .7z, dan .tar.7z, sebagainya. Apa perbedaan antara .tar.*varian normal dan varian? Yang mana dari mereka yang disarankan saat membuat cadangan?

Percepatan-G
sumber

Jawaban:

183

Jika Anda berasal dari latar belakang Windows, Anda mungkin terbiasa dengan format zip dan rar. Ini adalah arsip dari beberapa file yang dikompresi bersama.

Dalam sistem Unix dan Unix-like (seperti Ubuntu), pengarsipan dan kompresi terpisah.

tar menempatkan banyak file ke dalam satu file (tar).

gzip kompres satu file (hanya).

Jadi untuk mendapatkan arsip terkompresi, Anda menggabungkan keduanya, pertama gunakan taratau paxuntuk mendapatkan semua file ke dalam satu file (archive.tar), lalu gzip(archive.tar.gz). Jika Anda hanya memiliki satu file yang perlu Anda kompres (notes.txt), tidak perlu tar, jadi Anda cukup melakukan gzip notes.txtyang akan menghasilkan notes.txt.gz. Ada jenis kompresi lain, seperti compress, bzip2dan xzyang bekerja dengan cara yang sama seperti gzip (selain menggunakan berbagai jenis kompresi tentu saja)

geirha
sumber
6
Itu masuk akal, tetapi kemudian, mengapa saya bisa membuat .7zarsip dari banyak file, sementara saya juga bisa membuat .tar.7zarsip dari banyak file?
Percepatan-G
3
@ Exeleration-G 7zip tidak mengikuti skema ini. Ini lebih seperti zip dan rar. Tidak yakin apa gunanya tar dalam hubungannya dengan 7zip adalah karena saya belum pernah menggunakan 7zip sendiri.
geirha
42
@ Percepatan-G Setelah membaca jawaban yang lain, saya melihat SaultDon menjawab ini; 7zip tidak menyimpan kepemilikan unix dan izin file yang diarsipkan (tampaknya terutama diarahkan ke Windows, seperti zip dan rar), jadi masuk akal untuk menggabungkannya dengan tar untuk mendapatkan kepemilikan dan izin dipertahankan.
geirha
@geirha Tandai pertanyaan sebagai diselesaikan jika Anda menemukan jawaban yang sesuai.
Ravi
1
Dalam pengalaman saya 7z jauh lebih baik di kompresi daripada zip. Ketika saya mengujinya saya menghemat sekitar 40% ekstra
Eoin
49

Tergantung pada apa yang Anda cari ... Kompresi atau pengarsipan?

Ketika saya berbicara tentang pengarsipan, maksud saya menjaga izin, struktur direktori, dll ...

Kompresi mungkin mengabaikan sebagian besar dan hanya mendapatkan file Anda dalam paket yang lebih kecil.

Untuk mempertahankan izin file, gunakan tar:

tar cpvf backup.tar folder

Bendera p akan menyimpan izin file. Gunakan bendera z untuk kompresi gzip atau bendera j untuk kompresi bzip.

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

Jika Anda ingin memiliki file tar, Anda dapat "memperbarui" paket tar menggunakan flag P:

tar cpPvf backup.tar folder

Kemudian untuk memperbarui, ganti 'c' dengan 'u' dan saat membongkar, Anda dapat menggunakan 'k' untuk menyimpan file yang sudah ada.

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

Bendera P menyimpan file dengan path lengkap, jadi - / home / nama pengguna vs rumah / nama pengguna (perhatikan garis miring ke depan).

Kompresi 7z menawarkan kompresi yang lebih besar, tetapi tidak mempertahankan kepemilikan file, izin, dll. Rzip adalah utilitas kompresi lain yang menawarkan kompresi yang sebanding dengan 7z juga.

Saya kira file backup.tar.7z hanyalah file tar (dengan izin) yang dikompresi oleh file 7z, meskipun saya tidak akan terkejut jika sedikit kompresi terjadi karena 7z mungkin tidak dapat membuang metadata file. Ini adalah kemampuan 7z untuk mengecualikan metadata file yang dapat menawarkan kompresi hebat (di antara hal-hal lain tentu saja).

Kompresi sepenuhnya tergantung pada tipe data juga. Beberapa file tidak kompres dengan baik karena mereka mungkin sudah dikompres dengan beberapa cara lain (yaitu, .mp3, .jpg, .tiff / dengan lzma, .rpm, dll).

SaultDon
sumber
11

gzip atau bzip2 tidak tahu file system- nama file, direktori, atau struktur pohon. Itu hanya mengompres aliran input, kemudian hasil output. Bahkan gzip atau bzip2 tidak dapat mengarsipkan direktori sendiri, itu sebabnya biasanya digabungkan dengan tar.

tar (archiver) - hanya mengarsipkan struktur file. gzip, bzip2 (kompresor) - cukup kompres input.

Saya pikir strategi ini datang dari 'lakukan satu hal dengan baik' filosofi Unix. Tar bekerja dengan baik? Biarkan apa adanya. Perlu lebih banyak rasio kompresi daripada gzip? Berikut ini adalah bzip2 atau 7zip.

Mait
sumber
Sebenarnya 7zip dapat diarsipkan seperti zip atau rar.
Mait
8

gaya kompresi yang berbeda, tar dengan sendirinya hanya diarsipkan (sedikit atau tanpa kompresi). tar.gz adalah arsip tar tetapi isinya dikompres oleh gzip (kompresi sedang) maka .gz dan tar.7z dikompres menggunakan 7zip (biasanya kompresi super tinggi)

ketika mencadangkan saya akan merekomendasikan tar.7z karena memiliki tingkat kompresi tertinggi menghemat ruang Anda tetapi menggunakan program tambahan (7zip). .tar.gz akan menjadi file yang lebih besar dan melakukan pekerjaan yang sama, Anda juga bisa menggunakan bzip (.tar.bz / bz2) walaupun saya tidak yakin apakah itu lebih cocok untuk Anda karena saya menggunakan gzip atau 7zip

MuffinStateWide
sumber
4

biasanya, file * .tar hanyalah file tar yang dibuat oleh program tar, program * .gz dibuat oleh gzip, * .tar.gz (kadang-kadang juga * .tgz) adalah file tar gzip, dan * .7z dibuat oleh 7zip.

Namun, di Linux / Unix, seseorang dapat memberi nama file cukup banyak pula yang dia inginkan, jadi itu sepenuhnya atas kebijaksanaan pencipta file.

G. He
sumber
3

Tar (Tape Archiver) secara tradisional telah digunakan sebagai wadah di Unix / Linux untuk mengemas file untuk dipindahkan. Ini memaketkan struktur file dan memelihara atribut file, tetapi tidak memampatkan file.

Program kompresi mengkompres file untuk membuatnya lebih kecil, tetapi mereka mungkin tidak menangani banyak file, dan / atau mereka mungkin tidak menangani atribut file yang diperlukan untuk Linux. Karena tar sudah ada dan didukung dengan baik, tidak ada alasan untuk pengarsipan program untuk menduplikasi fungsi ini, yang khusus untuk platform (re, berbeda untuk Windows dan Linux). Juga, program kompresi yang berbeda dapat melakukan berbeda pada berbagai jenis file, sehingga memiliki pilihan lebih dari satu adalah diinginkan.

Marty Fried
sumber