İçeriğe geç

tar.gz nedir: Linux neden tek iş için iki araç kullanır

Haven Zip ekibi · · 2 dk okuma

Windows kullanıcıları .zip görür. Linux ve macOS kullanıcıları .tar.gz, .tgz, .tar.xz ve son zamanlarda .tar.zst görür ve bir dosyanın neden iki uzantıya ihtiyacı olduğunu merak eder. Cevap, 1970'lerden gelen ve hepsi-bir-arada yaklaşımdan daha esnek çıkan, bedeli tek bir gerçek zahmet olan bir tasarım felsefesidir.

İki iş, iki araç

Teyp arşivi anlamına gelen tar, 1979 tarihlidir. Tek işi dosya ve dizinleri adları, izinleri, sahiplikleri, sembolik bağlantıları ve zaman damgalarını koruyarak tek bir akışta art arda dizmektir. Hiçbir şeyi sıkıştırmaz. Çıktısı, girdilerin toplamı artı dosya başına 512 baytlık bir başlık kadardır.

Sıkıştırma ayrı bir adımdır. gzip (1992) tek bir akışı, ZIP'in kullandığı aynı algoritma olan Deflate ile sıkıştırır. tar'ı gzip'e borulayın, .tar.gz elde edersiniz. gzip yerine xz koyun, daha küçük ama daha yavaş .tar.xz olur. zstd koyun, xz kadar küçük ve kat kat hızlı .tar.zst olur.

Ayrımın kazandırdığı

Arşivin tamamı tek bir sıkıştırılmış akış olduğundan, sıkıştırıcı her dosyayı aynı anda görür ve sözlüğünü hepsi arasında paylaşır. Bin benzer dosyalı bir kaynak ağacı, her dosyanın tek başına sıkıştırıldığı bir ZIP'ten çok daha iyi sıkışır. Bu, solid bir 7z arşivinin sağladığı avantajın aynısıdır.

Ayrıca tar'a dokunmadan bugün ya da gelecekte herhangi bir sıkıştırıcının takılabileceği anlamına gelir. zstd 2016'da geldiğinde tar.zst aynı gün çalıştı.

Bedeli

Dizin yoktur. Dosyaları listelemek ya da tar.gz'nin sonundaki tek bir dosyayı çıkarmak için okuyucu ondan önceki her şeyi açmak zorundadır. Büyük bir tar.gz'de gezinmek aynı içeriğin ZIP'inde gezinmekten yavaştır ve tek bir dosyayı çıkarmak hepsini çıkarmak kadar sürebilir. Haven Zip ağacı kurmak için arşivi baştan sona akıtır; büyük bir tar.xz'nin açılması bir an sürerken büyük bir ZIP'in anında açılmasının sebebi budur.

İzinler ve sahiplik aslına uygun korunur; Linux için yazılım paketlerken tam istediğiniz, Windows'taki bir akrabaya fotoğraf gönderirken hiç umursamadığınız şey budur.

  • Windows'la ya da teknik olmayan kullanıcılarla paylaşmak: ZIP.
  • Kaynak kod, yedekler, Linux paketleri: uyumluluk için tar.gz, hız için tar.zst, en küçük dosya için tar.xz.
  • Elinizde tar.gz var, ZIP gerekiyor: Haven Zip cihazınızda dönüştürür.

İlgili

Tüm yazılar