7-zip'te “Sıkıştırılmadan Saklanacak Dosyalar” Nasıl Yapılır?


25

WinRAR'da olduğu gibi, belirli dosya türlerinin 7-zip formatında sıkıştırılmasını seçici olarak engellemenin bir yolu var mı ?

Büyük bir klasörü (çoğu gigabayt) sıkıştırmaya çalışıyorum ve önceden sıkıştırılmış dosyaların (örneğin ZIP dosyaları) yeniden sıkıştırılmasını istemiyorum - sıkıştırılmadan depolanmaları gerekir.


Bunu yapmak istemenizin belirli bir nedeni var mı (her küçük işlem zamanından tasarruf etmek, 7z ikili paketini kullanmak veya LZMA'yı tekrar uygulamak zorunda kalmadan bunları okumak gibi). Genel olarak, karşılaştığım sıkıştırma araçlarının çoğu, bir dosyayı daha da sıkıştırma girişiminde yetersiz yanıt bulduğunda, sıkıştırılmamış şeyleri otomatik olarak depolayabilecek kadar akıllı olma eğilimindedir.
ssokolow 19:11

@ssokolow: 4 yıl oldu ve sanırım sorunuzu hiç cevaplamadım, ancak yolsuzluğun zarar görmesini en aza indirmek ve aynı zamanda bir felaketteki verileri kurtarmayı kolaylaştırmak gibi başka nedenler de olabilir.
Mehrdad

Yanıtlar:


19

Evet, aynı 7-Zip arşivi içinde farklı dosyalar için farklı sıkıştırma yöntemlerine sahip olmak mümkündür.

-mYöntemi belirtmek için parametre ile 7-Zip komut satırı sürümünü kullanın; Copybu, sıkıştırma yok demektir.

Örnek :

7za a -m0=Copy tmp7.7z *.txt

Daha fazla bilgi için, bkz. -M (Set sıkıştırma Yöntemi) anahtarı .


Yukarıdaki komut, txt dosyalarını sıkıştırmaz ve yalnızca txt dosyalarını varolan bir arşive ekler. Yukarıdaki komutu çalıştırmadan önce, txt olmayan dosyalarla bir arşiv dosyası oluşturulmalıdır. Farklı türde dosyalar varsa o kadar kolay değildir.
Praveen Sripati

Eğer -m0=Copyçalışmaz, deneyin -mx=0.
Bora M. Alper

15

Zip dosyalarınızın olduğunu ve klasörünüzde sıkıştırılmamış txt dosyalarınızın olduğunu varsayalım.

İlk adım , aşağıdaki komutu kullanarak txt dosyalarını sıkıştıran bir arşiv oluşturmaktır.

-m ile sıkıştırma seviyelerini ayarlamak için kullanabilirsiniz, bu kullandığınız sıkıştırma yöntemine de bağlıdır.

Burada yalnızca varsayılan sıkıştırma olarak kabul edelim

7z a compressed.7z *.txt -r 

Şimdi sıkıştırılmış olacak.

İkinci adım bu arşive zaten sıkıştırılmış dosyayı kopyalamak veya yeni bir arşiv oluşturmak için olacak

7z u compressed.7z -u!update.7z -mx0 *.zip 

Burada güncelleme komutunun daha ayrıntılı bir açıklaması var

Grafik arayüzü kullanma özgürlüğünüz varsa, güncelleme aşağıdaki şekilde yapılabilir

görüntü tanımını buraya girin


Bir tür zorluk ama sanırım işe yarayacak, teşekkürler.
Mehrdad

1

Sıkıştırılmış filetoları (.zip dosyaları gibi) yeniden sıkıştırmayı denemeden hızlıca depolayan bir dizini hızla sıkıştıracak bir PowerShell betiği oluşturdum. 7zip'in komut satırı arayüzünü kullanır ve herhangi bir dosyayı sıkıştırıp sıkıştırmamaya ya da basitçe depolamaya karar vermek için dosya adı uzantılarını kullanır.

Komut dosyasını burada bulabilirsiniz: https://gist.github.com/ivanatpr/5dea086172eab573ba71


0

Teknik olarak, sıkıştırılmış dosyalar daha fazla sıkıştırılmaz, entropi sınırı veya benzeri bir şeyle ilgili ayrıntıları unuturum, ancak elde edeceğiniz en fazla gördüğüm% 2'den az.

Çoğu iyi kompresör, sıkıştırmayı kontrol eder ve sıkıştırılamayan dosyaları saklar; çünkü sıkıştırmak daha sonra ek yükü ekler ve boyutunu artırır.

Tabii ki, ilk etapta dosyaya bakmanın çalışması ve zamanı var.

Diğer cevaplarda da açıklandığı gibi, dosya setiniz üzerinden çoklu geçiş yapmak muhtemelen en iyi çözüm olacak ve kolayca yazılabilir.

7z arşivini yaratın ve herşeyi ekleyin ancak sıkıştırılmış dosyaları tek geçişte ekleyin, sonra önceden sıkıştırılmış dosyaları sıkıştırılmamış veriler olarak ekleyin. (Sıkıştırılabilir şeyler arşivin başlangıcında ve sonunda sıkıştırılamaz hale geldiğinden, bu şekilde yapardım. Bitişik olduğundan daha hızlı bir şekilde sürücüden çıkar.)

(kullanılan 'sıkıştır ...' çok fazla!)


1
Kimseye yardım etmesi durumunda, işte "bir entropi sınırı hakkında bir şey" nin özü. Entropi, öngörülemezliğin bir ölçüsü olarak düşünülebilir. Sıkıştırmanın arkasındaki fikir şudur: Bir bit kalıbını tahmin edebiliyorsanız, her şeyi saklamanıza gerek kalmayacak ... onun nasıl tahmin edileceğine dair daha kompakt talimatlar (bir kod sözcüğü). Teorik maksimum entropi, bir sonraki kod sözcüsünün herhangi bir şey olabileceği eşit derecede muhtemel olduğunda elde edilir. Sıkıştırılmış veriden daha fazla sıkıştırmanın sıkıştırılması, ikinci geçiş birinci çıktının artık tahmin edilebilirliğini tanımladığında gerçekleşir.
ssokolow
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.