.Tar.gz ve .gz veya .tar.7z ve .7z arasındaki fark nedir?


158

Son zamanlarda, benim çok veri yedekleme ettik ve ben gibi dosyaları kaydedebilirsiniz fark .gzya .tar.gzya .7zve .tar.7zvesaire. Normal olan ve .tar.*değişken arasındaki farklar nelerdir ? Yedekleme yaparken bunlardan hangisi tavsiye edilir?

Yanıtlar:


183

Windows arkaplanından geliyorsanız, zip ve rar formatlarına aşina olabilirsiniz. Bunlar birlikte sıkıştırılmış birden fazla dosyanın arşivleridir.

Unix ve Unix benzeri sistemlerde (Ubuntu gibi), arşivleme ve sıkıştırma ayrıdır.

tar birden fazla dosyayı tek bir (tar) dosyaya koyar.

gzip bir dosyayı sıkıştırır (sadece).

Sıkıştırılmış bir arşiv elde etmek için, ilk kullanım tarya da paxtüm dosyaları tek bir dosyaya (archive.tar), sonra gziponu (archive.tar.gz) almak için ikisini birleştirirsiniz . Sıkıştırmanız gereken tek bir dosyanız varsa (notes.txt), tar'a gerek yoktur, bu nedenle gzip notes.txtsonuçta ortaya çıkar notes.txt.gz. Orada gibi diğer sıkıştırma türleri vardır compress, bzip2ve xz(elbette farklı sıkıştırma tipleri kullanarak) gzip ile aynı şekilde çalışır ki


6
Bu mantıklı ama o zaman neden .7zbirden fazla dosyadan bir .tar.7zarşiv oluşturabilirim, aynı zamanda birden fazla dosyadan da bir arşiv oluşturabilirim ?
Exeleration-G

3
@ Exeleration-G 7zip bu planı takip etmiyor. Daha çok zip ve rar gibi. 7zip ile birlikte tar kullanma amacının kendimi 7zip kullanmadığımdan emin değilim.
geirha

42
@ Exeleration-G Diğer cevapları okuduktan sonra SaultDon'un buna cevap verdiğini görüyorum; 7zip, arşivlenmiş dosyaların unix sahipliğini ve iznini saklamaz (çoğunlukla zip ve rar gibi Windows'a yöneliktir), bu nedenle sahiplik ve izinlerin korunmasını sağlamak için katranla birleştirmenin anlamı vardır.
geirha

@geirha Uygun cevabı bulursanız soruyu çözülmüş olarak işaretleyin.
Ravi

1
Tecrübelerime göre, 7z sıkıştırma işleminde zip'ten çok daha iyidir. Test ettiğimde bana% 40 fazladan bir şey kazandırdı
Eoin

49

Ne aradığınıza bağlı ... Sıkıştırma veya arşivleme?

Arşivleme hakkında konuşurken, izinleri korumak, dizin yapıları vb.

Sıkıştırma bunların çoğunu görmezden gelebilir ve dosyalarınızı daha küçük paketlere sokar.

Dosya izinlerini korumak için tar kullanın:

tar cpvf backup.tar folder

P bayrağı dosya izinlerini kaydeder. Gzip sıkıştırması için z bayrağını veya bzip sıkıştırması için j bayrağını kullanın.

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

Bir tar dosyasına sahip olmak istiyorsanız, P işaretini kullanarak tarı "güncelleyebilirsiniz":

tar cpPvf backup.tar folder

Daha sonra güncellemek için 'c' yerine 'u' yazın ve paketten çıkarırken, zaten var olan dosyaları korumak için 'k' kullanabilirsiniz.

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 bayrağı dosyaları tam yollarla kaydeder, yani - / home / username - home / username (öndeki eğik çizgiye dikkat edin).

7z sıkıştırma daha fazla sıkıştırma sunar, ancak dosya sahipliğini, izinleri vb. Korumaz. Rzip, 7z ile de karşılaştırılabilir sıkıştırma sunan başka bir sıkıştırma aracıdır.

Bir backup.tar.7z dosyası sadece 7z dosyası tarafından sıkıştırılmış bir tar dosyasıdır (7z dosyası tarafından sıkıştırılmıştır); 7z'nin dosya sıkıştırma verilerini hariç tutabilme kabiliyeti vardır (tabii ki diğer şeylerin yanı sıra).

Sıkıştırma tamamen veri türüne de bağlıdır. Bazı dosyalar iyi sıkıştırma yapmazlar, çünkü zaten başka bir yolla sıkıştırılmış olabilirler (örneğin, .mp3, .jpg, .tiff / lzma, .rpm, vb.).


11

gzip veya bzip2 bilmiyor file system- dosya adı, dizin veya ağaç yapısı. Sadece girdi akışını sıkıştırır, ardından sonucu çıkartır. Gzip veya bzip2 bile dizinleri kendi başlarına arşivleyemez, bu nedenle genellikle katranla birleştirilir.

tar (arşivleyici) - sadece arşiv dosya yapısı. gzip, bzip2 (kompresör) - sadece girişi sıkıştırın.

Bence bu strateji 'iyi bir şey yap' unix felsefesinden geldi. Tar iyi çalışıyor mu? Olduğu gibi bırakın. Gzip'ten daha fazla sıkıştırma oranına mı ihtiyacınız var? İşte bzip2 veya 7zip.


Aslında 7zip, zip veya rar gibi arşivleyebilir.
Mait

8

farklı sıkıştırma stilleri olan katran tek başına basitçe arşivlenir (çok az sıkıştırmadan az sıkıştırmaya). tar.gz bir tar arşividir ancak içerikleri gzip (orta derecede sıkıştırma) ile sıkıştırılır, bu nedenle .gz ve tar.7z, 7zip (genellikle süper yüksek sıkıştırma) kullanılarak sıkıştırılır.

Yedekleme yaparken tar.7z 'i tavsiye ederim, zira yer tasarrufu sağlayan en yüksek sıkıştırma oranına sahip fakat ekstra bir program kullanıyor (7zip). .tar.gz daha büyük dosyalar olacak ve aynı işi yapacak, aynı zamanda bzip (.tar.bz / bz2) kullanabilirsiniz, ancak gzip ya da 7zip kullandığım için size daha uygun bir uygulama olduğundan emin değilim.


4

tipik olarak, * .tar dosyaları sadece tar programı tarafından oluşturulan tar dosyalarıdır, * .gz programları gzip, * .tar.gz (bazen ayrıca * .tgz), gziped tar dosyaları ve * .7z ise 7zip tarafından oluşturulur.

Bununla birlikte, Linux / Unix'te bir kişi istediği şekilde bir ad verebiliyor, bu yüzden tamamen dosyaların yaratıcısının takdirine kalmıştır.


3

Tar (Tape Archiver) geleneksel olarak Unix / Linux'ta dosyaları taşımak için paketlemek için bir kap olarak kullanılmıştır. Dosya yapısını paketler ve dosya özniteliklerini korur, ancak dosyaları sıkıştırmaz.

Sıkıştırma programları dosyayı daha küçük yapmak için sıkıştırır, ancak birden fazla dosyayı işlemeyebilir ve / veya Linux için gerekli olan dosya özelliklerini işlemeyebilir. Tar zaten var olduğundan ve iyi desteklendiğinden, programların platforma özgü (Windows ve Linux için farklı olan) bu işlevselliği çoğaltması için arşivlemenin bir nedeni yoktur. Ayrıca, farklı sıkıştırma programları farklı dosya türlerinde farklı performans gösterebilir, bu nedenle birden fazla seçeneğe sahip olmak istenir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.