Yanıtlar:
TAR , birçok dosyadan tek bir arşivlenmiş dosya oluşturur, ancak bunları sıkıştırmaz.
Bir tar dosyası bir veya daha fazla dosyanın birleştirilmesidir. Her dosya 512 baytlık bir başlık kaydından önce gelir. Dosya verileri, uzunluğu 512 baytın katlarına yuvarlanması ve fazladan boşluk doldurulması haricinde, değiştirilmemiş olarak yazılır. Bir arşivin sonu, en az iki ardışık sıfır dolu kayıtla işaretlenir.
GZIP , tek bir dosyayı başka bir tek dosyaya sıkıştırır ancak arşiv oluşturmaz.
... Her ne kadar dosya formatı aynı zamanda bu tür çoklu akışların birleştirilmesine de izin veriyorsa da (sıkıştırılmış dosyalar, sanki tek bir dosyadaymış gibi birleştirilerek sıkıştırılmış şekilde sıkıştırılmış), gzip normalde sadece tek dosyaları sıkıştırmak için kullanılır. [4] Sıkıştırılmış arşivler, genellikle dosya koleksiyonlarını tek bir katran arşivine birleştirerek ve sonra da bu arşivi gzip ile sıkıştırmak suretiyle oluşturulur.
tar -xzvf tarball.tar.gz single/file.txt
. Sahnelerin ardında fazladan bir çalışma yapması gerekiyor, ancak görünüşe göre tek bir dosya alıyor.
.tar.*
sıkıştırılmış bir arşiv her zaman “katı” dır, yani. tek bir sıkıştırılmış akıştan oluşur. .zip
Öte yandan bir arşiv hiç sağlam değil, sıkıştırma algoritması her dosya için yeniden başlatılıyor. Rasgele erişimi hızlandırmak için sıkıştırma verimini feda eder. .7z
arşivler katı olabilir, katı olmayabilir veya katı bloklara sahip olabilir.
Gzip / Bzip2, akış kompresörleridir. Bir veri akışını daha küçük bir şeye sıkıştırırlar. Tek tek dosyalar üzerinde kullanılabilirler, ancak kendi başlarına dosya gruplarında kullanılamazlar.
Öte yandan Tar, yolları, izinleri ve mülkiyet bilgilerini içeren bir dosya listesini tek bir sürekli akışa çevirme yeteneğine sahiptir - ve tersi.
Bu nedenle, dosyaları arşivlemek için (ve birinin de sıkıştırma gerektiriyorsa), genellikle tar + some sıkıştırma yöntemini kullanır.
Tar tek bir şeyi iyi yapmaktan sorumludur: (un) tek bir arşiv dosyasına arşivleme (dışarıdan). Neyin? Bir ve sadece bir şey: bir dizi dosya.
Gzip, tek bir şeyi iyi yapmaktan sorumludur: (un) sıkıştırmak. Neyin? Sadece bir şey ve bir şey: her türden tek bir dosya ... ve bu tar ile oluşturulan bir dosyayı içerir.
UNIX'in boru hattı felsefesine, altında yatan "boru ve filtreler" mimarisine; her şeyin bir dosya olarak ele alınması ve "tek-şey-tek-tek-tek-ve-iyi-iyi" ses mimari hedefi (bu, çok şık ve basit bir eklenti oyunuyla sonuçlanır) .)
Sadeliği, doğada neredeyse cebirseldir (sistem tasarımında ağır bir hedef). Ve bu kolay bir başarı değil.
Birçok yönden (kusurları olmadan), bu hemen hemen beste, modülerlik, gevşek bağlanma ve yüksek uyum bakımından bir doruk noktasıdır. Eğer bu dördü anlarsanız (ve gerçekten anlıyorum demek istersen), anlarsınız, niçin tar ve gzip'in çiftler halinde böyle çalıştığı açıktır.
Her şeyden önce, TAR dosya arşivleri oluşturmak için yaratılmadı . Bu Tape ARchiver . İşi bir kasete kasetten / kasete yazmak veya yüklemek.
-F seçeneği daha sonra başka bir program tarafından sıkıştırılabilir "sanal teyp" gibi bir dosyayı kullanmak yapar. Aslında, böyle bir sıkıştırma gerçek dünya bantlarında da olur.
Elbette, bir programı iyi yapmak için kullanma felsefesi de bu durumda sayılır, ancak biri TAR arşivlerinin neden içerikler + içerikler dizini yerine bir akış olarak yapılandırıldığını kaçırabilir.
Geleneksel olarak, Unix sistemleri başına bir görevi gerçekleştirmek için bir program kullanılan Unix felsefesi : tar
aslen teyp yedekleme (dolayısıyla için, tek bir dosya içinde birden fazla dosya paketlemek için sadece bir araç olduğunu tar
, t maymun ar bıçaklamak). tar
sıkıştırma sağlamaz; Elde edilen sıkıştırılmamış arşiv, tipik olarak başka bir program ile sıkıştırılır gzip
, bzip2
ya da xz
. Eski günlerde compress
bunu yapmak için komutu kullanırlardı; daha yeni sıkıştırma algoritmaları bundan çok daha etkilidir.
Unix felsefesi tarafından dikte edilen oldukça modüler yaklaşım, burada açıklandığı gibi sıkıştırılmış arşivlerin oluşturulması da dahil olmak üzere her programın uygun şekilde ayrı ayrı kullanılabileceği veya daha karmaşık görevleri gerçekleştirmek için birleştirilebileceği anlamına gelir. Bu tür görevler için, bireysel araçları gerektiğinde değiştirmeyi de kolaylaştırır; sıkıştırma programını, tar
yardımcı programı değiştirmek zorunda kalmadan farklı bir sıkıştırma algoritması kullanmak üzere değiştirirsiniz .
Bu modüler yaklaşım, dezavantajları olmadan değildir. Gibi söz diğer cevaplara yorumlarında, böyle bir adanmış sıkıştırılmış arşiv biçimi .zip
dosyaları tek tek ayıklama daha iyi idare edebilir; Sıkıştırılmış tarball'ların, arşivin sonuna yakın dosyaları çıkartmak için neredeyse bütünüyle sıkıştırılması gerekirken, .zip
arşivler içeriklerine rasgele erişime izin verir. ( .7z
Katı ve katı olmayan arşivlerin yanı sıra daha büyük arşivlerde değişen boyutta katı blokları destekleyen bazı yeni biçimler .) tar
Ayrı bir sıkıştırma aracıyla birlikte kullanılmaya devam edilmesi , gelenek ve uyumluluk meselesidir; Ayrıca, .7z
ve .zip
izinler gibi Unix dosya meta desteklemez.