Linux Dosya Sıkıştırma Seçenekleri ve Karşılaştırması

Linux File Compression Options



Sıkıştırma, genel olarak, bilgiyi orijinalinden daha az veri kullanarak kodlayan kullanışlı bir yöntemdir. Linux söz konusu olduğunda, her biri kendi yararına olan çeşitli sıkıştırma seçenekleri vardır.

Genel bir Linux dağıtımı, bir avuç gerçekten kullanışlı ve basit sıkıştırma mekanizmasına erişim sağlar. Bu makale sadece onlara odaklanacaktır.







Sıkıştırma türleri

Sıkıştırma, bilgiyi başlangıçta olduğundan daha az bit kullanarak kodlar ve temsil eder. Dosya sıkıştırma durumunda, bir sıkıştırma yöntemi, genellikle orijinal dosyanın boyutundan daha küçük bir çıktı oluşturmak için kendi algoritmasını ve matematiksel hesaplamasını kullanır. Farklı sıkıştırmanın nasıl çalıştığı ve dosyaların rastgele doğası nedeniyle, kilometre büyük ölçüde değişebilir.



2 tip sıkıştırma vardır.



  • Kayıplı sıkıştırma : Bu, veri bütünlüğünü garanti etmeyen riskli bir sıkıştırma türüdür. Esasen, sıkıştırıldıktan sonra orijinal dosyanın sıkıştırılmış arşiv kullanılarak yeniden oluşturulamama riski vardır.
    Bu tür sıkıştırmanın sağlam bir örneği, iyi bilinen MP3 formatıdır. Orijinal ses dosyasından bir MP3 oluşturulduğunda, orijinal kaynak müzik dosyasından önemli ölçüde daha küçüktür. Bu, bazı ses kalitesinde kayıplara neden olur.
  • Kayıpsız sıkıştırma : Bu, en yaygın olarak kullanılan sıkıştırma türüdür. Kayıpsız bir sıkıştırma yöntemi kullanılarak, orijinal dosya sıkıştırılmış dosyadan yeniden oluşturulabilir. Bu yazıda bahsedeceğim sıkıştırma yöntemlerinin tümü kayıpsız sıkıştırma yöntemleridir.

Linux sıkıştırma

Sıkıştırma yöntemlerinin çoğu araçta mevcuttur katran . Zip sıkıştırmasına gelince, fermuar alet. Sisteminizde bu araçların zaten kurulu olduğunu varsayarak başlayalım.





İlk başta bir test dosyasına ihtiyacımız var. Bir tane oluşturmak için aşağıdaki komutu çalıştırın.

$base64/dev/urandom| kafa -C 20000000 >dosya.txt



20MB boyutunda bir metin dosyası oluşturacaktır.

Şimdi dosyanın 10 kopyasını oluşturalım. Birlikte, 200 MB.

Sıkıştırma için Zip

Zip oldukça yaygındır. Zip dosyası oluşturmak için zip aracı aşağıdaki komut yapısını gerektirir.

$fermuar <çıktı>.zip<giriş>

Test dizini altındaki tüm dosyaları tek bir zip dosyasında sıkıştırmak için bu komutu çalıştırın.

$fermuartest.zip*

Giriş boyutu 200 MB idi. Sıkıştırmadan sonra, şimdi 152 MB!

Varsayılan olarak, zip aracı DEFLATE sıkıştırmasını uygular. Bununla birlikte, bzip2 sıkıştırmasını da kullanabilir. Sadece bu değil, aynı zamanda parola korumalı zip dosyaları da oluşturabilirsiniz! Zip hakkında daha fazla bilgi edinin .

Linux'ta Sıkıştırma için Tar

Tar bir sıkıştırma yöntemi değildir. Bunun yerine, çoğunlukla arşiv oluşturmak için kullanılır. Ancak, arşive bir dizi popüler sıkıştırma yöntemini uygulayabilir.

Tar (tarball olarak da bilinir) arşivini işlemek için tar aracı vardır. katran hakkında daha fazla bilgi edinin. Genellikle tar aracı aşağıdaki komut yapısını kullanır.

$katran <seçenekler> <çıktı dosyası> <giriş>

Test dosyalarını tek bir tar arşivine eklemek için aşağıdaki komutu çalıştırın.

$katran -cvftest.tar*

Burada dosya boyutu aynı kalır.

Linux'ta Sıkıştırma için Gzip

GNU Zip veya gzip, bence, daha iyi sıkıştırması nedeniyle geleneksel zipten daha iyi olan bir başka popüler sıkıştırma yöntemidir. Mark Adler ve Jean-Loup Gailly tarafından yaratılan ve başlangıçta UNIX'in yerini alması amaçlanan açık kaynaklı bir üründür. kompres Yarar.

gzip arşivlerini yönetmek için 2 araç mevcuttur: tar ve gzip. İkisini de kontrol edelim.

İlk olarak, gzip aracı. İşte gzip komut yapısının nasıl göründüğü.

$gzip <seçenek> <giriş>

Örneğin, aşağıdaki komut, test1.txt dosyasını sıkıştırılmış test1.txt.gz dosyasıyla değiştirecektir.

$gzip -vtest1.txt

Tüm bir dizini gzip kullanarak sıkıştırmak istiyorsanız bu komutu çalıştırın. Burada -r bayrağı özyinelemeli sıkıştırma içindir. Gzip, tüm klasörleri gözden geçirecek ve her birindeki tek tek dosyaları sıkıştıracaktır.

$gzip -r <klasör yolu>

Gzip, 1'den (en az sıkıştırma, en hızlı) 9'a (en iyi sıkıştırma, en yavaş) kadar çeşitli sıkıştırma gücü değerlerini destekler.

$gzip -v -9 <dosya>

Çıktı üzerinde daha iyi kontrol ve kullanım kolaylığı için tar, görev için daha iyidir. Aşağıdaki komutu çalıştırın.

$katran -cvzftest.tar.gz*

Sonuç, sıkıştırmadan sonra 152 MB ile sonuçlanan DEFLATE kullanan zip'e benzer.

Linux'ta Sıkıştırma için Bzip2

Bzip2, sıkıştırma için Burrows-Wheeler algoritmasını kullanan ücretsiz ve açık kaynaklı bir araçtır. İlk olarak 1996'da tanıtılan bzip2, gzip sıkıştırmasına alternatif olarak yoğun bir şekilde kullanılmaktadır.

gzip gibi, bzip2 ile çalışmak için 2 araç vardır: tar ve bzip2.

bzip2 aracı, gzip aracına benzer şekilde çalışır. Bir seferde yalnızca tek bir dosya ile çalışabilir. İşte komut yapısı.

$bzip2 <seçenek> <giriş>

Test1.txt dosyasını sıkıştıralım. Burada -v bayrağı ayrıntılı mod içindir.

$bzip2 -vtest1.txt

gzip'e benzer şekilde, bzip2 de 1'den (varsayılan, daha az bellek kullanımı) 9'a (aşırı sıkıştırma, yüksek bellek kullanımı) kadar farklı sıkıştırma düzeylerini destekler.

$bzip2 -v -9 <dosya>

bzip2 sıkıştırmasını kullanmanın daha iyi yolu tar kullanmaktır. Aşağıdaki komutu kullanın.

$katran -cvjftest.tar.bz2*

Sıkıştırma öncekilerden biraz daha iyileştirildi. Şimdi, dosya boyutu 151.7 MB'a küçüldü.

Linux'ta Sıkıştırma için XZ

Sıkıştırma alanında nispeten yeni bir oyuncu. İlk olarak 2009'da piyasaya sürüldü, o zamandan beri istikrarlı bir kullanım artışı gördü.

xz sıkıştırma aracı, gzip ve bzip2'ye kıyasla daha yüksek sıkıştırma oranıyla bilinen LZMA2 algoritmasını kullanır, bu da onu maksimum miktarda disk alanından tasarruf etmek istediğinizde harika bir seçim haline getirir. Ancak bu, daha yüksek bellek gereksinimleri ve zaman tüketimi maliyeti ile birlikte gelir.

XZ sıkıştırma aracı tarafından oluşturulan dosya .xz uzantısına sahiptir. Tek bir dosyayı sıkıştırmak için doğrudan XZ aracını arayabilirsiniz.

$xz<seçenek> <dosya>

Örneğin, test1.txt dosyasını sıkıştırmak için aşağıdaki komutu çalıştırın.

$xz-vtest1.txt

Bahsedilen diğer sıkıştırma yöntemlerine benzer şekilde xz, 1'den (en düşük sıkıştırma, en hızlı) 9'a (en iyi sıkıştırma, en yavaş) kadar çeşitli sıkıştırma mukavemeti aralıklarını da destekler. Zamana saygınız yoksa ve sadece yerden tasarruf etmek istiyorsanız, o zaman aşırıya gidin.

$xz-v -9 <dosya>

Tüm test dosyalarından sıkıştırılmış bir XZ dosyası oluşturmak için bu komutu çalıştırın.

$katran -cvJftest.tar.xz*

Burada çıktı dosyası boyutu 153.7 MB'dir.

Sıkıştırılmış arşivleri çıkarma

Oluşturduğumuz arşivleri çıkarmak, onları oluşturmaktan daha kolay. Bir zip dosyasını çıkarmak için aşağıdaki komut yapısını kullanın.

$sıkıştırmayı açmak <dosya adı>.zip-NS <hedef>

Oluşturduğumuz zip arşivini çıkartmak için bu komutu çalıştırın. Bu, aynı dizindeki tüm içeriği çıkaracaktır.

$sıkıştırmayı açmaktest.zip

tar, tar.gz, tar.bz2 ve tar.xz arşivlerini çıkarmak için, katran alet. Hepsini çıkarmak için aşağıdaki tar komutu geçerlidir.

$katran -xvf <arşiv_dosya adı>

Örneğin bz2 sıkıştırılmış arşivindeki tüm dosyaları çıkaralım.

$katran -xvftest.tar.bz2

Bir gzip (tar.gz değil) dosyasını açmak için bu komutu çalıştırın.

$gzip -NS <gzip_file>

Benzer şekilde, aşağıdaki komut bzip2 arşivini açar.

$bzip2 -NS <bzip2_file>

Aynı komut yapısı xz arşivi için de geçerlidir.

$xz-NS <xz_file>

Son düşünceler

Umarım, artık farklı koşullarda sıkıştırma görevlerini yerine getirmek için yeterli bilgiye sahipsiniz. Özel gereksinime bağlı olarak, tüm sıkıştırma yöntemleri çok çekici özellikler sunar.

Unutulmaması gereken önemli bir nokta, sıkıştırma sonucunun her zaman aynı olmayacağıdır. Farklı veri girişi ile çıktı farklı olacaktır. Örneğin, bazı durumlarda xz çılgın bir sıkıştırma sonucu sunabilirken bu örnekte vermedi. Aynı şey diğer yöntemler için de geçerli.

Bu araçlar hakkında daha ayrıntılı bilgi edinmek için ilgili kılavuz sayfalarına bakın.

$adam fermuar