man/archiving_and_compression
man · Arşivleme & Sıkıştırma

$ compression_tool

Bölüm 1 · Arşivleme & Sıkıştırma

Compression kütüphanesini kullanarak dosyaları kodlama/kodunu çözme

Özet

compression_tool -encode | -decode [-a algoritma] [-A algoritma] \
    [-i girdi_dosyasi] [-o cikti_dosyasi] [-v] [-h]

Açıklama

compression_tool, Compression kütüphanesini kullanarak dosyaları kodlar (sıkıştırır) veya kodunu çözer (sıkıştırmasını açar).

Seçenekler

  • -encode: Girdiyi kodlar (sıkıştırır).

  • -decode: Girdinin kodunu çözer (sıkıştırmasını açar).

  • -a algoritma: Sıkıştırma algoritmasını ayarlar. Geçerli seçenekler zlib, lzma, lzfse, lz4 ve lz4_raw değerleridir. Varsayılan değer lzfse değeridir.

    • zlib: IETF RFC 1951'de tanımlandığı şekliyle ham DEFLATE yükü; kodlayıcı zlib seviye 5'tir.
    • lzma: Bir XZ kapsayıcısı içindeki LZMA2 yükü; kodlayıcı LZMA2 ön ayar (preset) 6'dır.
    • lz4: Basit bir çerçeve biçimi (compression.h içinde açıklanmıştır) içindeki ham LZ4 yükü.
    • lz4_raw: Ham LZ4 yükü.
    • lzfse: LZFSE yükü.
  • -A algoritma: Blok sıkıştırmayı etkinleştirir ve sıkıştırma algoritmasını ayarlar. Geçerli seçenekler zlib, lzma, lzfse ve lz4 değerleridir. Varsayılan değer lzfse değeridir.

  • -b blok_boyutu: Blok sıkıştırma için blok boyutunu ayarlar. Tamsayı değerinin arkasından m, k veya b gelebilir.

  • -t is_parcacigi_sayisi: Blok sıkıştırma veya sıkıştırmayı açma işlemleri için kullanılacak çalışan iş parçacığı (worker thread) sayısını ayarlar. Varsayılan değer makinedeki mantıksal iş parçacığı sayısıdır.

  • -i girdi_dosyasi: Girdi dosyası. Belirtilmezse standart girdiden okur.

  • -o cikti_dosyasi: Çıktı dosyası. Belirtilmezse standart çıktıya yazar.

  • -v: Ayrıntı düzeyini (verbosity) artırır. Varsayılan olarak sessiz çalışır.

  • -h: Kullanım bilgisini yazdırır ve çıkar.

Blok Sıkıştırma Dosya Formatı

Dosya, verileri sıkıştırmak için kullanılan algoritmayı gösteren 4 baytlık p, b, z, <algo> başlığıyla başlar. Başlığı, bayt cinsinden 64 bitlik blok boyutu takip eder. Ardından her blok için 64 bitlik sıkıştırılmamış boyut, 64 bitlik sıkıştırılmış boyut ve sıkıştırılmış yük bulunur. Son blok hariç, sıkıştırılmamış boyut blok boyutuyla eşleşir.

Bir blok için hem sıkıştırılmamış hem de sıkıştırılmış boyutlar eşitse, yük sıkıştırılmadan saklanır. Tüm 64 bitlik değerler big-endian olarak saklanır. <algo> için geçerli değerler şunlardır: zlib için z, lzma için x, lz4 için 4 ve lzfse için e.