GZIP(1) | Kullanıcı Komutları | GZIP(1) |
İSİM
gzip — dosyaları sıkıştırır
gunzip — sıkıştırılmış dosyaları açar
zcat — sıkıştırılmış dosyaları standart çıktıda açar
KULLANIM
gzip |
[ -acdfhklLnNrtvV19 ] [ -S sonek ] [ isim ... ] |
gunzip |
[ -acfhklLnNrtvV ] [ -S sonek ] [ isim ... ] |
zcat |
[ -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 (Öntanımlı uzantı, 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 yoksayılır.
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ırlanmış ise, gzip.msdos.exe
, gzi.msd.exe.gz
şeklinde sıkıştırılır. Dosya isimleri için sınırlama olmayan dosya sistemlerinde isimler kısaltılmaz.
Öntanımlı olarak, gzip özgün 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 aktarımı sonrası zaman etiketleri korunmamışsa oldukça faydalı olur.
Sıkıştırılmış dosyalar, gzip -d, gunzip veya zcat kullanılarak özgün durumlarına dönüştürülebilir. Şayet sıkıştırılmış dosya içinde saklanan özgün dosya ismi, yeni dosya sistemi için geçerli değilse, özgün isimden yeni bir isim uydurulur.
gunzip, .gz
, -gz
, .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 özgün 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
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ış dosyaları 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 ve gunzip için, sıkıştırılmamış uzunluğa bakılır. Standart compress 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, girdinin bozuk olup olmadığına bakmaz 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çılabilir. Bu özellik, sadece tar.zip
dosyalarının tar.gz
biçimine dönüştürülebilmesi amacı ile tasarlanmıştır. Tek üyeli zip dosyalarını açmak için 'gunzip < foo.zip' veya 'gunzip -S .zip foo.zip' komutları kullanılabilir. Çok üyeli zip
dosyaları gunzip ile değil unzip ile açılmalıdır.
zcat komutu, gunzip -c ile aynıdır. (zcat ise aslında compress ailesine aittir. Bu bakımdan, compress kurulu sistemlerde komut, gzcat şeklinde bulunabilir.) zcat, ya komut satırındaki ya da standart girdideki dosyaları açar ve açılmış veriyi standart çıktıya yazar. zcat, 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 ortak alt dizgelerin 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 özgüninden 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, artı 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ı yerel ayarlara göre dönüştürülü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, özgün dosyaları değiştirmeden tutar. Çeşitli girdi dosyaları mevcut ise, çıktı, 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 uçbirimden okunması/yazılması durumunda bile sıkıştırma/açma işleminin yapılmasını sağlar. Girdinin verisi gzip tarafından tanınmayan bir biçimde ise ve ayrıca --stdout seçeneği de belirtilmişse, girdi dosyası hiç değiştirilmeden standart çıktıya kopyalanır: zcat'in, cat gibi davranmasına izin verir. -f verilmemiş ve gzip artalanda çalışmıyorsa, varolan dosyanın üzerine yazılıp yazılmayacağı kullanıcıya sorulur.
- -h, --help
-
Yardım metnini görüntüler ve çıkar.
- -k, --keep
-
Sıkıştırma ve açma sırasında girdi dosyaları tutulur (silinmez).
- -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, özgün dosya adını ve tarih damgasını kaydetmez. (İsmin kırpılması gerektiğinde, özgün isim her zaman kaydedilir.) Açarken, özgün ismi (sadece sıkıştırma sonekini kaldırır) ve özgün 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, özgün 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. Komut satırından belirtilen bir dosya ismi bir dizine ait ise, gzip bu dizinin içine girer ve orada bulunan bütün dosyaları sıkıştır (veya gunzip kullanılıyorsa açar).
-
-S , --suffix
.sonek
-
Sıkıştırırken,
.gz
soneki yerine.sonek
sonekini kullanır. Herhangi bir sonek belirtilebilir. Dosyalar başka bir sisteme taşınacaksa, karışıklığa sebep olmamak adına,.z
ve.gz
dışındaki soneklerden kaçınılmalıdır.Sıkıştırmanın açılması sırasında, çıktı dosyası ismi, girdi dosyasından elde ediliyorsa
.sonek
denenecek sonekler listesinin başına eklenmelidir. - --synchronous
-
Eşzamanlı çıktı kullanılır. Bu seçenekle, gzip'in bir sistem çökmesi sırasında veri kaybetme olasılığı daha düşüktür, ancak işlem önemli ölçüde yavaş olabilir.
- -t, --test
-
Sıkıştırılmış dosyanın bütünlüğünü sınar ve çıkar.
- -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. -# seçeneğinde # yerine -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 pahasına yüksek sıkıştırmaya eğilimlilik).
- --rsyncable
-
Sıkıştırılmış bir dosyayı iki bilgisayar arasında eşzamanladığınızda, bu seçenek rsync'in tüm arşiv yerine yalnızca arşivde değiştirilen dosyaları aktarmasını sağlar. Normalde, arşivdeki herhangi bir dosyada değişiklik yapıldıktan sonra, sıkıştırma algoritması arşivin önceki sürümüyle eşleşmeyen yeni bir arşiv sürümü oluşturabilir. Bu durumda rsync(1), arşivin tüm yeni sürümünü uzak bilgisayara aktarır. Bu seçenekle, rsync yalnızca değiştirilen dosyaların yanı sıra, değiştirilen alandaki arşiv yapısını güncellemek için gerekli olan az miktarda meta veriyi aktarabilir.
GELİŞMİŞ KULLANIM
Çok sayıda sıkıştırılmış dosya birleştirilmiş olabilir. 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
Şayet birleşik dosyalar daha iyi bir sıkıştırma için tekrar sıkıştırılmak istenirse:
gzip -cd eski.gz | gzip > yeni.gz
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. Bütün üyelerin açılmış boyutuna ihtiyacınız varsa:
gzip -cd dosya.gz | wc -c
Çok üyeli tek bir arşiv oluşturmak ve daha sonra bunların birbirinden bağımsız olarak açılabilmesini istiyorsanız, tar(1) veya zip(1) 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 içerir. Bu değerler önce yorumlanır ve daha sonra komut satırından belirtilen girdilerle değiştirilebilir. Bu özellik, komut dosyalarını kullanırken sorunlara neden olabileceğinden, yalnızca çok fazla zarar vermeme olasılığı olan seçenekler için desteklenir ve kullanılırsa gzip uyarır. Bu özellik, gzip'in gelecekteki bir sürümünde kaldırılacaktır.
Bunun yerine bir takma ad veya betik kullanabilirsiniz. Örneğin, gzip /usr/bin
dizinindeyse PATH
'inizin başına $HOME/bin
ekleyebilir ve aşağıdakileri içeren bir $HOME/bin/gzip betiği oluşturabilirsiniz:
#! /bin/sh export PATH=/usr/bin exec gzip -9 "$@"
İLGİLİ BELGELER
znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1), compress(1)
gzip dosya biçimi P. Deutsch içinde GZIP dosya biçimi belirtimi sürüm 4.3 olarak Internet RFC 1952'de (Mayıs 1996) belirtilmiştir ve <ftp://ftp.isi.edu/in-notes/rfc1952.txt> adresinde bulunabilir. zip biçimi ise P. Deutsch içinde DEFLATE sıkıştırılmış veri biçimi belirtimi sürüm 1.3 olarak Internet RFC 1951'de (Mayıs 1996) belirtilmiştir ve <ftp://ftp.isi.edu/in-notes/rfc1951.txt> adresinde bulunabilir.
ÇIKIŞ DURUMU VE HATA İLETİLERİ
Çıkış durumu normalde 0'dır, hata oluşması durumunda 1, uyarı oluşması durumunda 2'dir.
-
Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]
-
Komut satırında geçersiz seçenekler tanımlandı.
-
dosyaismi
: not in gzip format
-
gunzip'e belirtilen dosya, sıkıştırılmamış.
-
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 handleyy
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 ilgilidir).
-
-- not a regular file or directory: ignored
-
Girdi dosyası normal bir dosya veya dizin değil ise (örneğin, bir sembolik bağ, soket, isimli boru veya aygıt dosyası olabilir), değiştirilmeden bırakılır.
-
-- has xx other links: unchanged
-
Girdi dosyası bağlara sahip; 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ği kullanılabilir.
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 okunup bütün blok gunzip'e açılmak üzere gönderilirse, gunzip sıkıştırılmış verinin ardındaki fazladan çöpü bulur ve öntanımlı olarak bir uyarı verir. Bu iletiyi atlamak için --quiet seçeneğini kullanmak gerekir.
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
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 nadir 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.
GERİBİLDİRİM
TELİF HAKKI
Lisans GPLv3+: GNU GPL sürüm 3 veya üstü <https://www.gnu.org/licenses/gpl.html>. Bu bir özgür yazılımdır: Yazılımı değiştirmek ve dağıtmakta özgürsünüz. Yasaların izin verdiği ölçüde HİÇBİR GARANTİ YOKTUR.