Gzip

Ubuntu Türkiye Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla
  • gzip - dosyaları sıkıştırır
  • gunzip - sıkıştırılmış dosyaları açar
  • gzcat - sıkıştırılmış dosyaları standart çıktıda açar


Görevi: KULLANIM
<br>
*       gzip   [ -acdfhlLnNrtvV19 ] [ -S sonek ] [ isim ... ] 
*  gunzip [ -acfhlLnNrtvV ] [ -S sonek ] [ isim ... ] 
* gzcat  [ -fhLV ] [ isim ... ] 


AÇIKLAMA

gzip, isim ile belirtilen dosyanın boyutunu Lempel-Ziv Kodlamasını (LZ77) kullanarak küçültür. Mümkün olan bütün dosyaların isimlerinin sonuna .gz soneki getirilir ama dosyaların sahiplik, erişim ve düzenlenme zamanları korunur (VMS için öntanımlı uzantı -gz, MSDOS, OS/2 FAT, Windows NT FAT ve Atari için z dir). Şayet herhangi bir dosya ismi belirtilmemişse veya dosya ismi olarak "-" belirtilmişse, standart girdi sıkıştırılır ve standart çıktıya gönderilir. Sembolik bağlar, özellikle göz ardı edilir.

Şayet sıkıştırılmış dosya ismi, içinde bulunduğu dosya sistemi için çok uzun ise, gzip bu ismi kısaltır. gzip, 3 karakterden uzun dosya ismi bölümlerini kısaltmaya çalışır (noktalar ile sınırlanmış bölümler). Şayet isim sadece küçük bölümler içeriyorsa, uzun kısımlar kısaltılır. Örneğin; dosya isimleri 14 karakter ile sınırlandırılmış ise, gzip.msdos.exe, gzi.msd.exe.gz şeklinde sıkıştırılır. Dosya isimleri için sınırlandırma olmayan dosya sistemlerinde isimler kısaltılmaz.
Öntanımlı olarak, gzip orijinal dosya ismini ve zaman etiketlerini sıkıştırılmış dosyada da korur. Bu değerler -N seçeneği ile birlikte sıkıştırılmış dosyayı açarken kullanılır. Bu yöntem, kısaltılmış dosya isimleri olması durumunda veya bir dosya transferi sonrası zaman etiketleri korunmamışsa oldukça faydalı olur.
Sıkıştırılmış dosyalar, gzip -g, gunzip veya gzcat kullanılarak orijinal durumlarına dönüştürülebilir. Şayet sıkıştırılmış dosya içinde saklanan orijinal dosya ismi, yeni dosya sistemi için geçerli değilse, orijinal isimden yeni bir isim uydurulur.
gunzip, .gz, -gz, .z, -z, _z veya .Z ile biten dosyaların ve doğru sihirli sayı ile başlayan dosyaların isminin bulunduğu listeyi kendi komut satırına alır ve uzantıları atılmış halde orijinal durumlarına dönüştürür. gunzip ayrıca bazı özel uzantıları da tanır: .tgz ve taz (.tar.gz ve .tar.Z nin kısaltmaları olarak). Sıkıştırma işlemi sırasında, dosya isminin kısaltılmasının gerekli olması durumunda, gzip .tar uzantısı yerine .tgz kullanır.
gunzip; gzip, zip, compress, compress -H veya pack ile sıkıştırılmış paketleri açabilir. Girdi biçiminin tespiti otomatik olarak yapılır. İlk iki biçim için, gunzip bir 32 bitlik CRC sınaması yapar. pack için, sıkıştırılmamış uzunluğu kontrol eder. Standart uncompress biçimi uyum sınamalarına izin verecek şekilde tasarlanmamıştır. Bununla birlikte, gunzip bazen bozuk bir .Z dosyasını tespit edebilir. Bir .Z dosyasını açarken bir hata alırsanız, standart uncompress komutunun uyarmadığını görüp de, .Z dosyasının sağlam olduğunu düşünmeyin. Bunun anlamı, standart uncompress, girdiyi kontrol etmez ve çıktı olarak çöp yığını üretebilir. SCO sıkıştırmasının -H biçimi (lzh sıkıştırma yöntemi) bir CRC ihtiva etmez ama bazı tutarlılık denetimlerine izin verir.
zip ile sıkıştırılmış dosyalar, sadece 'deflation' yöntemi ile sıkıştırılmış tek bir üyeye sahip oldukları durumlarda, gzip ile açılabilirler. Bu özellik, sadece tar.zip dosyalarının tar.gz biçimine dönüştürülebilmesi amacı ile tasarlanmıştır. İçinde pek çok dosya bulunan zip dosyalarını gunzip ile açmak yerine unzip ile açın.

gzcat, gunzip -c ile aynıdır. (gzcat'in gzip ailesi ile gelen komutunun asıl ismi zcat dır. zcat ise aslında compress ailesine aittir. Bu bakımdan, compress kurulu sistemlerde komut, gzcat şeklinde bulunabilir.) gzcat, ya komut satırındaki dosya listesini ya da standart girdideki dosyaları açar ve açılmış veriyi standart çıktıya yazar. gzcat, sonu .gz ile bitsin ya da bitmesin, doğru sihirli numaraya sahip dosyaları açar.

gzip, zip ve PKZIP'de kullanılan Lempel-Ziv algoritmasını kullanır. Elde edilen sıkıştırma, dosyanın boyutuna ve genel altdizgelerin dağılımına bağlıdır. (*Ç.N.: gzip ingilizce metinler için iyi sonuç verir. Türkçe metinlerin sıkıştırılmasında bzip2 bariz şekilde daha iyi sıkıştırır.) Sıkıştırma, LZW (compress'de kullanılan), Huffman kodu (pack'de kullanılan) veya compact'daki uyarlanmış Huffman kodu ile yapılandan daha iyi sonuç verir.


Sıkıştırma işlemi, sıkıştırılmış dosya orjinalinden büyük olsa bile, gerçekleştirilir. Bu durum için en kötü senaryo: gzip dosya başlığı için fazladan bir kaç bayt, her 32K blok için 5 bayt veya büyük dosyalar için %0.015 oranında boyut artışıdır. Gerçekte kullanılan disk bloklarının sayısı asla artmaz. gzip, sıkıştırma veya açma işlemi esnasında, dosya iyeliklerini, kiplerini ve zaman etiketlerini korur.

SEÇENEKLER

        -a, --ascii
              Ascii   metin  kipi:  satır  sonlarını   yerel   ayarlara   göre
              dönüştürür.   Bu  seçenek,  sadece  Unix  dışı  birkaç  sistemde
              desteklenir.  Örneğin  MSDOS'da  sıkıştırma  esnasında  CRLF'ler
              LF'ye çevrilir ve açma işleminde LF'ler CRLF'ye dönüştürülür.

       -c, --stdout, --to-stdout
              Standart çıktıya yazar, orjinal dosyaları değiştirmeden muhafaza
              eder.  Şayet  çeşitli  girdi  dosyaları   mevcut   ise,   çıktı,
              sıkıştırılmış  bağımsız  olarak  sıkıştırılmış üyelerden oluşur.
              Daha iyi sıkıştırma elde etmek  için,  bütün  girdi  dosyalarını
              sıkıştırma işleminden önce birleştirin.

       -d, --decompress, --uncompress
              Sıkıştırılmış dosyayı açar.

       -f, --force
              Dosyanın  çoklu  bağlara  sahip  olduğu  durumlarda  veya benzer
              dosyanın sistemde  var  olması  durumunda  ya  da  sıkıştırılmış
              verinin   bir   terminalden  okunması/yazılması  durumunda  bile
              sıkıştırma/açma  işleminin  yapılmasını  sağlar.   Şayet   girdi
              bilgisi  gzip  tarafından  tanınmayan  bir biçimde ise ve ayrıca
              --stdout   seçeneği   belirtilmişse,   girdi    dosyasını    hiç
              değiştirmeden  standart  çıktıya  kopyalar:  gzcat'in,  cat gibi
              davranmasına izin verir. Şayet -f verilmemiş ve  gzip  artalanda
              çalışmıyorsa,  varolan  dosyanın üzerine yazılıp yazılmayacağını
              kullanıcıya sorar.

       -h, --help
              Yardım konularını görüntüler ve çıkar.

       -l, --list
              Sıkıştırılmış her bir dosya için aşağıdaki bölümleri listeler:

              compressed size:   sıkıştırılmış dosyanın boyu
              uncompressed size: sıkıştırılmamış dosyanın boyu
              ratio:             sıkıştırma oranı (bilinmiyorsa 0.0%)
              uncompressed_name: sıkıştırılmamış dosyanın ismi
              Açılmış  boyut,  .Z  dosyaları  gibi  gzip   biçiminde   olmayan
              sıkıştırılmış  dosyalar  için  -1  olarak  verilir.  Bu  tür bir
              dosyanın açılmış boyutunu bulmak için şunu kullanabilirsiniz:

              zcat file.Z | wc -c
              --verbose seçeneği ile birlikte kullanılırsa, aşağıdaki bölümler
              de gösterilir:

              method:      sıkıştırma yöntemi
              crc:         sıkıştırılmamış verinin 32 bitlik CRC'si
              date & time: sıkıştırılmamış dosya için tarih damgası
              Desteklenen sıkıştırma yöntemleri: deflate, compress,  lzh  (SCO
              compress  -H)  ve  pack'dir. gzip biçiminde  olmayan  bir  dosya
              için crc, ffffffff şeklinde belirtilir.

              --name  seçeneği  ile  sıkıştırılmış  dosya  içinde  eğer varsa,
              sıkıştırılmamış dosya ismi, tarih ve zaman saklanır.

              --verbose seçeneği ile  ayrıca,  bilinmeyen  boyutlar  olmadıkça
              bütün   dosyalar   için   toplam   boyut   ve  sıkıştırma  oranı
              görüntülenir. --quiet seçeneği ile, başlık ve  toplam  satırları
              görüntülenmez.

       -L, --license
              gzip lisansını görüntüler ve çıkar.

       -n, --no-name
              Sıkıştırırken, orjinal dosya adını ve tarih damgasını kaydetmez.
              (İsmin  kırpılması  gerektiğinde,   orjinal   isim   her   zaman
              kaydedilir.)  Açarken,  orjinal ismi (sadece sıkıştırma sonekini
              kaldırır)  ve  orjinal  tarih  damgasını  eski  haline  getirmez
              (sıkıştırılmış  dosyadan  kopyalar). Bu seçenek açma işlemi için
              öntanımlıdır.

       -N, --name
              Sıkıştırırken  dosya  adını  ve  zaman  damgasını  kaydeder;  bu
              seçenek  sıkıştırma  için  öntanımlıdır. Açarken, varsa, orjinal
              dosya adı ve zaman damgasını eski  haline  getirir.  Dosya  ismi
              için  sınırlama  uygulayan  sistemler  veya  bir  dosya aktarımı
              sonucu  zaman  damgasının  kaybolduğu  durumlar   için   oldukça
              kullanışlı bir seçenektir.

       -q, --quiet
              Bütün uyarılar engellenir.

       -r, --recursive
              Dizinin  alt  dizinlerini de ardışık olarak dolaşır. Şayet komut
              satırından belirtilen bir dosya ismi  bir  dizin  ise,  gzip  bu
              dizinin  içine  girer  ve orada bulunan bütün dosyaları sıkıştır
              (veya gunzip'in kullanıldığı durumlara açar).

       -S .sonek, --suffix .sonek
               .gz soneki yerine .sonek sonekini kullanır. Herhangi bir  sonek
              belirtilebilir.  Dosyaları  başka  bir  sisteme taşımak gibi bir
              niyetiniz varsa, karışıklığa sebep  olmamak  adına,  .z  ve  .gz
              dışınaki  soneklerden  kaçının.  Sonek  bulunmadığı  durumlarda,
              gunzip bütün dosyaları soneksiz açmaya kalkar:

              gunzip -S "" *       (MSDOS için *.*)
              gzip'in eski sürümleri .z sonekini  kullanmaktaydı  ama  pack(1)
              ile bir karışıklığa sebebiyet vermemek için bundan vazgeçildi.

       -t, --test
              Sıkıştırılmış dosyanın bütünlüğünü sınar.

       -v, --verbose
              Ayrıntı  kipi.  Sıkıştırılan veya açılan her bir dosya için isim
              ve sıkıştırma oranını gösterir.

       -V, --version
              Sürüm numarasını ve derleme seçeneklerini gösterir ve çıkar.

       -#, --fast, --best
              Sıkıştırma hızını ayarlamayı sağlar.  -1 ile -9 arasında değişen
              değerler   alır.  -1  (--fast)  ile  en  hızlı  yöntemle  en  az
              sıkıştırma,  -9  (--best)  ile  en  yavaş  yöntemle  en   yüksek
              sıkıştırma yapılır. Öntanımlı değer -6 dır (hız ve sıkıştırmanın
              her ikisininde olabildiğince yüksek olduğu durum).

GELİŞMİŞ KULLANIM

Çoklu sıkıştırılmış dosyalar birleştirilebilir. Bu durumda, gunzip bütün üyeleri tek seferde açacaktır. Örneğin:


       gzip -c dosya1  > foo.gz 



       gzip -c dosya2 >> foo.gz 


Daha sonra bu komut verilirse:


       gunzip -c foo 


Elde edilen sonuç aşağıdaki komuta eşdeğerdir:


       cat dosya1 dosya2 


Bir .gz dosyasının bozulması durumunda diğer dosyayı kurtarmak mümkün olabilir (şayet hasarlı üye çıkarılırsa). Bununla birlikte, bütün üyeleri tek seferde sıkıştırarak daha iyi sıkıştırma sağlayabilirsiniz:


       cat dosya1 dosya2 | gzip > foo.gz 


Bu, aşağıdaki yöntemden daha iyi sıkıştırma sağlar.


       gzip -c dosya1 dosya2 > foo.gz 


Şayet birleşik dosyaları daha iyi bir sıkıştırma için tekrar sıkıştırmak isterseniz:


       gzip -cd eski.gz | gzip > yeni.gz
 




Şayet sıkıştırılmış bir dosya çeşitli üyeler içeriyorsa, --list seçeneği ile bildirilen açılmış boyut ve CRC raporu sadece son üye için verilir. Diğerlerini kapsamaz. Şayet bütün üyelerin açılmış boyutuna ihtiyacınız varsa:


       gzip -cd dosya.gz | wc -c 


Çoklu dosyalar ile tek bir arşiv oluşturmak istiyorsanız ve daha sonra bu dosyaları birbirinden bağımsız olarak açılabilmesini istiyorsanız, tar veya zip gibi bir arşivleyici kullanın. GNU tar yazılımı gzip'i başlatmak için -z seçeneğine sahiptir. gzip, tar uygulamasına tamamlayıcı olarak geliştirilmiştir, onun yerini alacak bir uygulama değildir.


ORTAM DEĞİŞKENLERİ

GZIP ortam değişkeni, gzip uygulaması için öntanımlı birkaç değer ihtiva eder. Bu değerler önce yorumlanır ve daha sonra komut satırından belirtilen parametreler tarafından değiştirilebilirler. Örneğin:

  • sh için: GZIP="-8v --name"; export GZIP
  • csh için: setenv GZIP "-8v --name"
  • MSDOSiçin: set GZIP=-8v --name


Vax/VMS'de ortam değişkeninin adı karışıklık yaratmamak için GZIP_OPT olarak geçer.



ÇIKIŞ DURUMU VE HATA İLETİLERİ

Çıkış durumu normalde 0 dır, hata oluşması durumunda 1 döner, uyarı oluşması durumunda 2 döner.

        Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]
              Komut satırında geçersiz seçenekler tanımlandı.

       dosyaismi: not in gzip format
              gunzip'e  argüman  olarak verilen dosya, sıkıştırılmış bir dosya
              değil.

       dosyaismi: Corrupt input. Use zcat to recover some data.
              Sıkıştırılmış dosya  zarar  görmüş.  Hatanın  verildiği  noktaya
              kadar olan kısım şu şekilde kurtarılabilir:

              zcat dosyaismi > kurtarılan
       dosyaismi: compressed with xx bits, can only handle yy bits
              Dosya   (LZW   kullanılarak)   bu  makinedeki  açma  programının
              işleyebileceği  bitlerden  daha   fazlasını   kullanabilen   bir
              uygulama  ile sıkıştırılmış. Dosyayı gzip ile tekrar sıkıştırın.
              Hem daha iyi sıkıştırma sağlar, hem de daha az bellek kullanır.

       dosyaismi: already has .gz suffix -- no change
              Belirtilen dosyanın zaten sıkıştırılmış olduğu  kabul  ediliyor.
              Dosyayı tekrar isimlendirin ve tekrar deneyin.

       dosyaismi already exists; do you wish to overwrite (y or n)?
              Mevcut   dosyasının  değiştirilmesini  istiyorsanız  "y"  tuşuna
              basın, istemiyorsanız "n" ye basın.

       gunzip: corrupt input
              Bir SIGSEGV çelişkisi saptandı. Girdi dosyası bozuk olabilir.

       xx.x% Percentage of the input saved by compression.
              Sıkıştırma tarafından kaydedilmiş girdinin yüzdesi (sadece -v ve
              -l ile alakalıdır).

       -- not a regular file or directory: ignored
              Girdi  dosyası  normal  bir dosya veya dizin değil ise (örneğin,
              bir sembolik bağ, soket,  FIFO  veya  aygıt  dosyası  olabilir),
              dokunulmaz.

       -- has xx other links: unchanged
              Girdi dosyası bağlara sahiptir; dokunulmadan geçildi. Daha fazla
              bilgi için ln(1)'e bakınız.  Çok  sayıda  bağa  sahip  dosyaları
              sıkıştırmak için -f seçeneğini kullanınız.

YETERSİZLİKLER

Sıkıştırılmış veriyi bir teybe yazarken, genellikle, çıktıyı blok sınırına kadar sıfırlarla doldurmak gerekebilir. Veri okunduğu ve bütün blok gunzip'e açılmak üzere gönderildiği zaman, gunzip sıkıştırılmış verinin ardında fazladan çöplük izi bulur ve öntanımlı olarak bir uyarı verir. Bu iletiyi atlamak için --quiet seçeneğini kullanmanız gerekir. Bu seçenek GZIP ortam değişkeni vasıtası ile ayarlanabilir:

  • sh için: GZIP="-q" tar -xfz --block-compress /dev/rst0
  • csh için: (setenv GZIP -q; tar -xfz --block-compr /dev/rst0


Yukarıdaki örnekte, gzip, GNU tar uygulaması tarafından, belirtilen -z seçeneği ile çalıştırılır. Teypler üzerinde okuma ve yazma için aynı boyda bloklar ayrılmış olduğundan emin olun (tar'ın -b seçeneği ile). Bu örnek sizin tar uygulamasının GNU sürümünü kullandığınız kabul ederek verilmiştir.


YAZILIM HATALARI

gzip biçimi, modulo 2^32 girdi boyutuna göre davranır, bu nedenle --list seçeneği, 4 GB veya daha büyük dosyakarın sıkıştırılmamış boyunu ve sıkıştırma oranını yanlış raporlar. Daha büyük dosyaların gerçek boyutlarını tespit etmek için aşağıdaki komutu kullanarak bu sorunun çevresinden dolanabilirsiniz:


       zcat dosya.gz | wc -c 


Şayet sıkıştırılmış dosya araştırılamayan bir ortam üzerinde ise, --list seçeneği boyut olarak -1 ve crc olarak ffffffff döndürür.

Bazı çok istisnai durumlarda, --best seçeneği öntanımlı seviye -6'dan daha kötü bir sıkıştırma uygular. Bazı son derece gereksiz dosyalarda, compress, gzip'den daha iyi sıkıştırma sağlar.

İlgili maddeler