Genellikle ne gzip ne de tar "mutlak en küçük tar.gz" yi yaratamaz. Gz biçiminde sıkıştırabilecek birçok sıkıştırma aracı vardır. Ben bir betik "yazdım gz99 " denemek için gzip
, 7z
ve advdef
en küçük dosya almak için. Bunu kullanmak için mümkün olan en küçük dosyayı çalıştırmak üzere:
tar c path/to/data | gz99 file.gz
advdef
AdvanceCOMP dan yarar genellikle en küçük dosya kalmaz, aynı zamanda arabası (olan gz99
bu çıktıyı ait kabul etmeden önce dosya bozuk değil yarar çekler advdef
). advdef
Doğrudan kullanmak için , ancak istediğiniz gibi file.tar.gz dosyasını oluşturun. O zaman koş:
advdef -z -4 file.tar.gz
Bu, normal olarak gzip ve tar ile okunabilen standart bir gz dosyası oluşturacaktır, sadece biraz daha küçük. Bu, gz formatı ile yapabileceğiniz en iyisidir.
Son zamanlarda tar'ın sıkıştırılabildiğini ve neden en küçük ".tar.gz" dosyasını istediğinizi söylemediğinizden, xz gibi tar dosyalarıyla kullanılabilecek daha verimli formatların olduğunun farkında olmayabilirsiniz. Genel olarak, farklı bir formata geçmek, sıkıştırma işleminde gzip seçenekleriyle uğraşmaktan çok daha iyi bir gelişme sağlayabilir. Xz'nin ana dezavantajı, gzip kadar yaygın olmamasıdır, bu nedenle dosyayı gönderdiğiniz kişilerin yeni bir paket yüklemeleri gerekebilir. Ayrıca, özellikle sıkıştırırken, biraz yavaş olma eğilimindedir. Bu sizin için önemli değilse ve gerçekten en küçük tar dosyasını istiyorsanız, deneyin:
tar cv path/to/data | xz -9 > file.tar.xz
Tarunt'un modern versiyonları, örneğin Ubuntu 13.10'da, sıkıştırılmış dosyaları otomatik olarak algılar. Bu nedenle, xz sıkıştırma kullanıyor olsanız bile, yine de her zaman olduğu gibi sıkıştırmasını açabilirsiniz:
tar xvf file.tar.xz
Bu sıkıştırma araçlarının nasıl karşılaştırılacağı konusunda hızlı bir fikir vermek için, patch-3.1.1'i linux çekirdeğinden sıkıştırmanın etkisini düşünün:
utility cpu format size(bytes)
gzip -9 0.02s gz 105,628
advdef -2 0.07s gz 102,619
7z -mx=9 -tgzip 0.42s gz 102,297
advdef -3 0.55s gz 102,290
advdef -4 0.75s gz 101,956
xz -9 0.03s xz 91,064
xz -3e 0.15s xz 90,996
Bu önemsiz örnekte, en küçük gz için advdef'e ihtiyacımız olduğunu görüyoruz (7z -tgzip neredeyse bu kadar iyi ve daha az buggy de olsa). Ayrıca, xz'e geçmenin, bize eski gz formatından en iyi şekilde sıkıştırmaya çalışmaktan çok daha fazla alan harcadığını görüyoruz.