2012-11-09 17 views
7

Çok büyük benzer 4 büyük dosya içeren bir klasörün içeriğini sıkıştırmaya çalışıyorum. Bu yüzden boyutunun azaltılmasını bekliyorum. Ben yaklaşık benim orijinaliyle aynı boyutta arşivini almak Sonrazip% 0? Neden sıkıştırma yok?

adding: myfolder/ (stored 0%) 
adding: myfolder/Program1.exe (deflated 0%) 
adding: myfolder/Program2.exe (deflated 0%) 
adding: myfolder/Program3.exe (deflated 0%) 
adding: myfolder/Program4.exe (deflated 0%) 

:

zip -9 myarchive.zip -r myfolder -P mypassword 

Ben yanıt almak: Burada

ben linux/fötr kullanıyorum komut var Klasör.

Hiç bir sıkıştırma meydana gelmiyor gibi görünüyor. Niye ya?

+0

'-P parolamı atladığınızda ne olur? –

+2

Tüm veriler sıkıştırılamıyor. –

+0

, Mypassword’i atladığımda aynıdır. –

cevap

7

tar + gzip aksine, zip her dosya için yeni bir sıkıştırma tablosunu kullanır, böylece dört dosyasında benzer olsa bile, bu tek tek her sıkıştırmak için çalışacağını söyledi.

Teknik olarak tar da her dosyayı görür ancak sıkıştırma aşaması tar + gzip genellikle zip daha küçük bir sonuç verir neden olan bir dev girdi çalışır yüzden, gzip için tek bir uzun girişine onları birlikte asar.

exe dosyalarınızın neden sıkıştırılamamasının nedeni budur. exe dosyaları genellikle büyük miktarlarda kolayca sıkıştırılabilir veriler içerir, bu nedenle en az% 30 oranında küçültülmelidir ("sönme"). Belki dosyalar şifrelenir veya gizlenir; Bu süreçler sonucu sıkıştırmak zorlaştırır.

+0

Teşekkürler, eğer zip, her dosyayı tek tek sıkıştırırsa, bu mantıklıdır. Dosyalar kendiliğinden çıkarılabilir exe, küçük bir yürütülebilir dosya + dll dosyaları + bazı resimlerin büyük sıkıştırılmış bir kütüphanesini içerir. Görüntüler ve kütüphaneler zaten sıkıştırılmış ve her dosya için neredeyse aynı. –

2

Bazı dosyalar, özellikle entropi yüksekse, sıkıştırılamaz. Bu, baytların istatistiksel dağılımı olduğunda bile (ör. Bayt 0, bayt 1 olarak daha sık bayt 1 olarak göründüğünde) olur. Bu zaten sıkıştırılmış içerikler için olur. Bazı video veya ses formatları bu kategoriye girer.

+0

Her dosyanın yüksek bir entropisi olduğunu düşünüyorum, ancak çok benzerler. Verilen iki dosya arasında muhtemelen% 1'den az fark var. Yani tüm klasör göz önüne alındığında çok fazlalık var. –

+0

Ve "0% sönen" ne anlama geliyor? Bunu asıl yazıyla sormayı unuttum. Yardım ettiğin için teşekkür ederim. –

2

Aaron doğrudur. Wikipedia'a göre, ZIP biçimi, arşivlenmeden önce sıkıştırır, böylece farklı dosyalar arasındaki benzerlikler sıkıştırmaya yardımcı olmaz.

Gerçekten .exe dosyalarını sıkıştırmaya mı çalışıyorsunuz? Bir şekilde bu senin gerçek dosya tipinden şüpheliyim.

Bkz. http://en.wikipedia.org/wiki/ZIP_(file_format)#Advantages_and_disadvantages.

+0

Girişiniz ve bağlantı için teşekkürler. Evet, dosyalarım kendiliğinden çıkarılabilir exe dosyalarıdır (Aaron'la ilgili cevaba bakın). Zaman ayırdığın için teşekkürler! –

2

Soldurulmuş% 0, sıkıştırmaya çalıştığı, ancak etkili bir şekilde sıkıştırılmadığı anlamına gelir. Belirtildiği gibi, zip formatı farklı girişler arasındaki benzerlikten yararlanamaz. tar + gzip olabilir, ancak yine de benzerlikler birbirinden 32K bayttan daha az olursa sonuçlanır. Diğer formatlar xz gibi daha uzun mesafe benzerliklerinden yararlanabilir.

Sıkıştırılmamış çalıştırılabilirlerin% 30 ile% 50 arasında sıkıştırması normaldir; bu, çalıştırılabilir öğelerinizin ya a) UPX gibi bir şey tarafından sıkıştırılmış olduğu, b) kendiliğinden açılan sıkıştırılmış verilerdir; Sıkıştırılmış verilerin c) Çok sıkıştırılmış verilerle çok kısa çalıştırılabilirler veya d) çoğunlukla şifrelenir.