Gzip: Revizyonlar arasındaki fark
(Sayfa oluşturdu, içeriği: '*<nowiki> gzip - dosyaları sıkıştırır</nowiki> *<nowiki> gunzip - sıkıştırılmış dosyaları açar</nowiki> *<nowiki> gzcat - sıkıştır…') |
Değişiklik özeti yok |
||
352. satır: | 352. satır: | ||
daha kötü bir sıkıştırma uygular. Bazı son derece gereksiz dosyalarda, | 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.</nowiki> | compress, gzip'den daha iyi sıkıştırma sağlar.</nowiki> | ||
==İlgili maddeler== | |||
* [[Unix Programları]] | |||
[[kategori:Temel Linux Bilgileri]] | [[kategori:Temel Linux Bilgileri]] |
05.28, 12 Ağustos 2010 tarihindeki hâli
- 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.