Tar gerçekten dosyaları sıkıştırıyor mu, yoksa sadece birlikte mi gruplandırıyor?


37

Genellikle tarbir sıkıştırma aracı olduğunu varsaydım , ancak emin değilim, dosyaları sıkıştırıyor mu, yoksa sadece ISO dosyası gibi, dosyaları tutan bir dosya mı?


Yanıtlar:


49

Tar bir arşivleme aracıdır (Tape Archive), yalnızca dosyaları ve meta verilerini bir araya toplar ve bir dosya oluşturur. Bu dosyayı daha sonra sıkıştırmak istiyorsanız, gzip / bzip2 / xz kullanabilirsiniz. Kolaylık sağlamak için, tar, arşivi sizin için otomatik olarak sıkıştırmak için argümanlar sunar. Ödemeye katran adam sayfasını daha fazla ayrıntı için.


9
Cevapla ilgili hafif bir açıklama. Bu ekstra sıkıştırma argümanlarını sağlayan GNU katranıdır. Örneğin, Solaris tar, sıkıştırma için bağımsız değişkenler sağlamaz.
Tero Kilkanen

5
oooh, bu yüzden görmeye devam ediyorumthing.tar.7z
Mooing Duck

BSD tar z, uzantıya dayalı sıkıştırma yöntemini yalnızca kabul edip belirlese de sıkıştırma için bir argüman sağlar , oysa GNU tar, zZjJfarklı sıkıştırma yöntemleri için ayrı argümanlara sahiptir .
wingedsubmariner

2
Sadece BSD tar man sayfasını okuyun ve yanıldığım ortaya çıktı, BSD tar, zZjJGNU tar gibi sıkıştırma için ayrı kullanıyor . Bununla birlikte, açma sırasında sıkıştırmayı otomatik olarak algılar, oysa GNU katran bekler zZjJ.
wingedsubmariner

5
@wingedsubmariner: no; GNU'nun modern-ish versiyonları tar, -zZjJseçenekleri gerektirmeden otomatik olarak açar .
Jonathan Leffler

17

tararşiv üretir; sıkıştırma ayrı bir işlevdir. Ancak tar tek başına, dosya sisteminin küme boyutundan daha küçük olan çok sayıda küçük dosyada kullanıldığında alan kullanımını azaltabilir. Bir dosya sistemi 1kb küme kullanıyorsa, tek bir bayt içeren bir dosya bile 1kb (artı bir inode) tüketir. Bir tararşiv bu ek yüke sahip değildir.

BTW, bir ISO dosyası gerçekten "dosyaları tutmak için bir dosya" değildir - aslında tüm bir dosya sisteminin (aslında CD'lerde kullanılmak üzere tasarlanmış) bir görüntüsüdür ve bu nedenle yapısı oldukça karmaşıktır.


3
Aslında boş bir dosya 1 kb tüketmez. 1-1023 baytlık bir dosya olacaktır.
psusi

@ psusi, 1-1023 baytlık bir dosya için her zaman 1023-1 baytlık israfla sonuçlanan 1024 tüketir.
Shiplu Mokaddim

2

Orijinal UNIX tar komutu arşivleri sıkıştırmadı. Bir yorumda belirtildiği gibi, Solaris tar sıkıştırmaz. Ne HP-UX, ne de AIX, FWIW. Geleneksel olarak, sıkıştırılmamış arşivler sona ermektedir .tar.

GNU / Linux ile GNU tar elde edersiniz. (GNU tar'ı diğer UNIX sistemlerine kurabilirsiniz.) Varsayılan olarak sıkıştırmaz; ancak, does sağladığınız takdirde (aynı zamanda GNU'den) gzip ile sonuçlanan arşiv sıkıştırmak -z. Gzipli dosyalar için geleneksel sonek .gz, bu nedenle sık sık bitmiş olan tarball'ları (katran arşivi için argo, genellikle sıkıştırıldığını gösterir) göreceksiniz .tar.gz. Bu son, katranın çalıştırıldığı, ardından gzip, mesela tar cf - .|gzip -9v > archive.tar.gz. Ayrıca .tgz, örneğin biten arşivleri de bulacaksınız tar czf archive.tgz ..

Düzenleme: www.linfo.org/tar.html , GNU katranının sadece gzip ile sıkıştırmaktan çok daha fazla işlevselliği desteklediğini ve eklerin düz kurallardan daha fazla olduğunu hatırlattı. Yerleşik anlambilim var. Ayrıca bzip2 ( -jfor .bz2) ve eski sıkıştırmayı ( -Zfor .Z) destekler. Sonra man sayfasına baktım ve sonekta -adayalı olarak istediğiniz sıkıştırma yöntemini otomatik olarak eşleştirdiğini hatırlattı .

Bir tane daha nit. Linux tar adam sayfasının dediği gibi GNU, man sayfalar değil, bilgi sayfaları üretir, böylece GNU tar hakkında her şeyi öğrenin info tar.


GNU katranı hala kendi başına baskı işlemlerini yerine getirmiyor, sadece gzip, bzip2, sıkıştırma ve diğerlerine yön veriyor.
ott--

Kaynağa baktım . GNU katran sıkıştırma işliyor! Uygulama, kodun yeniden kullanımı ve sağlam UNIX kullanıcı alanı mimari ilkelerinden yararlanır. "Sadece borular", sıkıştırma işleminin sıkıca alete entegre edilmesinin altını çiziyor. Çatal yardımcı programlarına gelmesi bir tekniktir. "Sadece borular" ı savunmak istiyorsan, dosya isimlerini ve satır numaralarını göster ve topluluğun hangi tarafını tuttuğunu görelim.
tbc0

Bu kaynağı kontrol etmem birkaç gün sürer.
ott--

1

[ar-z dosya adı] yapmak için argüman verene kadar tar programı sıkıştırılmaz.

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.