Di perusahaan saya, kami mengunduh snapshot basis data pengembangan lokal sebagai db.dump.tar.gz
file. Kompresi masuk akal, tetapi tarball hanya berisi satu file ( db.dump
).
Apakah ada gunanya pengarsipan file tunggal, atau .tar.gz
hanya idiom yang umum? Kenapa tidak adil .gz
?
tar
compression
archive
kepala kebun
sumber
sumber
tar -zxvf
. Tetapi bagi mereka yang melihat nama file dan melihatnya tidak memiliki.tgz
ekstensi, itu baik-baik saja untuk gzip file dump db. Karena saya tidak mengetahui algoritme kompresi secara terperinci, saya tidak yakin apakah tar melakukan kompresi pada file jarang seperti db dump, tetapi untuk file teks biasa, gzip file langsung memiliki keunggulan ukuran yang sangat kecil dibandingkan taring terlebih dahulu dan gzip ing file.tar.gz
lebih unggul daripada kebanyakan metode umum lainnya. Saya ingat itu.tar
lebih baik daripada adil tetapi tidak bisa mengingat apakah itu lebih baik daripada adil.gz
. Ironisnya,.cab
format Window adalah yang terbaik dari metode yang saya coba, yang sangat tidak terduga.tar
bukan algoritma kompresi, ini adalah format pengarsipanJawaban:
Keuntungan menggunakan
.tar.gz
bukannya.gz
itutar
menyimpan lebih banyak meta-data (izin UNIX dll.) daripadagzip
.Biaya penggunaan
tar
juga sangat kecil.Jika tidak benar-benar diperlukan, saya masih tidak merekomendasikan untuk memasukkan satu file. Ada banyak alat bermanfaat yang dapat mengakses file tunggal terkompresi secara langsung (seperti
zcat
,zgrep
dll. - juga ada untukbzip2
danxz
).sumber
.gz
, insting pertama saya adalahtar -zxf foo.gz
. Mengingat bahwa gzip bahkan merupakan perintah, butuh beberapa detik lagi.z
(atau dalam-
hal ini), kebanyakantar
s modern akan secara otomatis mendeteksi file perlu didekompresi.gzip
akan menyimpan nama file asli dan cap waktu. Anda dapat menggunakan-N
opsi ini saat melakukan dekompresi untuk memulihkannya.Anda sebenarnya hanya menanyakan setengah dari pertanyaan. Pertanyaan lainnya adalah, "Mengapa saya mengompres file tar dengan gzip?". Dan jawabannya bukan hanya itu yang
gzip
membuat file lebih kecil (dalam kebanyakan kasus):tar
:gzip
:Hanya dengan itu
tar
Anda tidak dapat memastikan data Anda tidak rusak. Dengan hanyagzip
Anda tidak dapat mengembalikan ID pengguna / grup, waktu modifikasi dan mungkin bukan nama file asli.Kombinasi ini lebih kuat daripada yang diberikan oleh masing-masing perintah / format, karena mereka melengkapi fitur masing-masing .
sumber
tar
halaman wikipedia, saya salah mengerti deskripsi yang berarti bahwa checksum itu untuk seluruh file.Ada keuntungan yang cukup besar untuk menggunakan file teks saja-gzip - isi dapat langsung diakses dengan alat baris perintah seperti
less
,zgrep
,zcat
.sumber
Saya akan mengatakan bahwa kemungkinan orang tidak menyadari bahwa mereka dapat menggunakan gzip / bzip2 / xz tanpa tar. Mungkin karena mereka berasal dari latar belakang DOS / Windows di mana normal untuk kompresi dan pengarsipan untuk diintegrasikan dalam satu format ( ZIP , RAR , dll).
Meskipun mungkin ada sedikit keuntungan menggunakan tar dalam beberapa situasi karena penyimpanan metadata atau kemampuan untuk menambahkan file tambahan, ada juga kelemahannya. Dengan file gzip / bzip2 / xz biasa, Anda dapat mendekompresinya dan menyalurkan data yang telah dikompresi langsung ke alat lain (seperti database Anda) tanpa harus menyimpan data yang telah dikompresi sebagai file pada disk. Dengan tarball, ini lebih sulit.
sumber
tgz
ekstensi. Namun, kasus OP menggunakantar.gz
- dan jika pengguna ex-Win / DOS yang hipotetis ini sama seperti saya, hal pertama yang mereka katakan ketika melihat file seperti itu adalah: 'Mengapa ia memiliki 2 ekstensi?'. Kemudian mereka mencari di Google dan dengan cepat mendapatkan jawabannya, yang secara khusus menjelaskantar
dan kompresi berbeda. ;-)Ada perbedaan penting yang dapat menjadikan penggunaan menjadi
tar
penting dalam beberapa keadaan: Selain "metadata" yang @jofel sebutkan dalam jawabannya,tar
mencatat nama file dalam arsip. Ketika Anda mengekstraknya, Anda mendapatkan nama file asli terlepas dari apa nama arsipnya.Dalam kasus Anda, arsip tar dan file yang dikandungnya memiliki nama terkait
db.dump.tar.gz
dandb.tar
, tetapi anggaplah Anda mengganti nama file tar tersebut20-Apr-16.dump.tgz
, atau apa pun. Hapus ini dengantar xvfz
, dan Anda dapatkandb.dump
. Sebagai perbandingan, unzip20-Apr-16.dump.gz
dan Anda punya20-Apr-16.dump
. (Sunting: seperti yang ditunjukkan dalam komentar, gzip juga membuat catatan nama file; tetapi biasanya tidak digunakan saat membuka ritsleting). Sebuahtar
arsip juga dapat berisi pathname relatif yang menempatkan file diekstrak dalam subdirektori.Kasus penggunaan Anda akan menentukan apakah jenis nama file ini diperlukan, atau bahkan diinginkan , atau sebenarnya tidak diinginkan. Namun yang pasti, terlepas dari kompresi,
tar
arsip perjalanan berbeda dari file biasa.sumber
gzip --name
secara eksplisit saat mendekompresi), tetapi Anda tidak harus menggunakan tar untuk mendapatkan ketekunan nama file.Selain semua jawaban lain, saya baru-baru ini menemukan situasi scripting di mana hanya satu file diharapkan, tetapi karyawan sebelumnya menulis skrip dengan kemungkinan lebih dari satu file yang dihasilkan. Jadi file-file itu tar dan bzipped, kemudian ditransfer, dan diperluas.
Ketika proses tumbuh ke titik itu membuat file 4,3 GB, itu berguling dan membuat file .dump.001 di samping file .dump. Semua skrip terus bekerja.
Itu didefinisikan kemalasan sysadmin proaktif!
sumber
Saya akan tar file tunggal, untuk menyalinnya menjaga stempel waktu (yang mudah diabaikan dalam unduhan). Izin dan kepemilikan file kurang penting: unduhan adalah istilah yang berlaku untuk sistem yang tidak terintegrasi dengan baik.
Apakah tar atau tidak, itu adalah praktik standar untuk mengompres file untuk membuat unduhan lebih cepat - dan menghindari kehabisan ruang disk.
sumber
Tar sangat berguna untuk banyak file yang tidak ditulis ke sistem file formal, seperti biasa. Jika karena alasan tertentu ada kesempatan, hanya 1 file yang akan ditulis itu tidak ada konsekuensi nyata. Saya dapat dd .tar.gz saya langsung ke / dev / sdx tanpa memperhatikan partisi atau sistem file. Mungkin juga rekaman.
Ini umumnya dilakukan karena skrip atau proses telah disalin dari kode warisan. Tentu saja tidak perlu tar jika hanya ada satu file, tetapi meninggalkan ruang untuk peningkatan ke beberapa file ......
sumber