Linux gzip, gunzip ve zcat komutları
Unix benzeri işletim sistemlerinde, gzip komutu GZIP arşivlerinden veri oluşturur, listeler, değiştirir ve ayıklar.
gunzip komutu, verileri GZIP arşivlerinden çıkarır.
zcat komutu, GZIP arşivlerinin içeriğini yazdırır.
Açıklama
Gzip, Lempel-Ziv kodlamasını (LZ77) kullanarak adlandırılmış dosyaların boyutunu küçültür. Mümkün olduğunda, her dosya aynı sahiplik modları, erişim ve değişiklik süreleri korunurken .gz uzantılı bir dosyayla değiştirilir. (Varsayılan uzantı VMS için -gz, MS-DOS, OS/2 FAT, Windows NT FAT ve Atari için z’dir.) Hiçbir dosya belirtilmemişse veya bir dosya adı “-” ise, standart girdi sıkıştırılır. standart çıktı. gzip yalnızca normal dosyaları sıkıştırmaya çalışır. Özellikle sembolik bağları yok sayar.
Sıkıştırılmış dosya adı, dosya sistemi için çok uzunsa, gzip onu kısaltır. gzip, dosya adının yalnızca üç karakterden uzun olan kısımlarını kesmeye çalışır. (Bir kısım noktalarla sınırlandırılmıştır.) Ad yalnızca küçük kısımlardan oluşuyorsa, en uzun kısımlar kesilir. Örneğin, dosya adları 14 karakterle sınırlıysa, gzip.msdos.exe, gzi.msd.exe.gz olarak sıkıştırılır. Dosya adı uzunluğu sınırı olmayan sistemlerde adlar kesilmez.
Varsayılan olarak gzip, orijinal dosya adını ve zaman damgasını sıkıştırılmış dosyada tutar. Bunlar, -N seçeneğiyle dosyanın sıkıştırılması sırasında kullanılır. Bu, sıkıştırılmış dosya adı kesildiğinde veya bir dosya aktarımından sonra zaman damgası korunmadığında kullanışlıdır.
Sıkıştırılmış dosyalar, gzip -d veya gunzip veya zcat kullanılarak orijinal biçimlerine geri yüklenebilir. Sıkıştırılmış dosyaya kaydedilen orijinal ad, dosya sistemine uygun değilse, yasal hale getirmek için orijinalinden yeni bir ad oluşturulur.
gunzip komut satırındaki dosyaların bir listesini alır ve adı .gz, -gz, .z, -z veya _z ile biten ve doğru sihirli sayı ile başlayan her dosyayı, orijinal uzantı. gunzip ayrıca .tgz ve .taz özel uzantılarını sırasıyla .tar.gz ve .tar.Z kısayolları olarak tanır. Sıkıştırırken, gzip, .tar uzantılı bir dosyayı kesmek yerine gerekirse .tgz uzantısını kullanır.
gunzip şu anda gzip, zip, sıkıştırma, sıkıştırma -H veya paket ile oluşturulan dosyaları açabilir. Giriş formatının tespiti otomatiktir. İlk iki formatı kullanırken gunzip, 32 bitlik bir CRC’yi kontrol eder. Paket için, gunzip sıkıştırılmamış uzunluğu kontrol eder. Standart sıkıştırma formatı, tutarlılık kontrollerine izin verecek şekilde tasarlanmamıştır. Ancak, gunzip bazen bozuk bir .Z dosyasını algılayabilir. Bir .Z dosyasını açarken bir hata alırsanız, standart açmanın şikayet etmemesi nedeniyle .Z dosyasının doğru olduğunu varsaymayın. Bu genellikle standart açmanın girdisini kontrol etmediğini ve mutlu bir şekilde çöp çıktısı oluşturduğunu gösterir. SCO sıkıştırması -H formatı (lzh sıkıştırma yöntemi) bir CRC içermez, ancak bazı tutarlılık kontrollerine de izin verir.
Zip tarafından oluşturulan dosyalar, yalnızca ‘deflation’ yöntemiyle sıkıştırılmış tek bir üyeye sahiplerse gzip tarafından açılabilir. Bu özellik yalnızca tar.zip dosyalarının tar.gz biçimine dönüştürülmesine yardımcı olmayı amaçlamaktadır. Tek üyeli bir zip dosyasını çıkarmak için gunzip zcat, gunzip -c ile aynıdır. (Bazı sistemlerde, sıkıştırılacak orijinal bağlantıyı korumak için zcat gzcat olarak yüklenebilir.) zcat, komut satırındaki veya standart girdisindeki bir dosya listesini açar ve sıkıştırılmamış verileri standart çıktıya yazar. zcat, .gz son eki olsun ya da olmasın 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 miktarı, girdinin boyutuna ve ortak alt dizilerin dağılımına bağlıdır. Tipik olarak, kaynak kodu veya İngilizce gibi metinler %60-70 oranında azaltılır. Sıkıştırma genellikle LZW (sıkıştırmada kullanıldığı gibi), Huffman kodlaması (pakette kullanıldığı gibi) veya uyarlanabilir Huffman kodlaması (kompakt) ile elde edilenden çok daha iyidir. Sıkıştırılmış dosya orijinalinden biraz daha büyük olsa bile sıkıştırma her zaman gerçekleştirilir. En kötü durum genişletmesi, gzip dosya başlığı için birkaç bayt artı her 32 K blokta 5 bayt veya büyük dosyalar için %0.015’lik bir genişletme oranıdır. Kullanılan disk bloklarının gerçek sayısının neredeyse hiçbir zaman artmadığını ve gzip’in sıkıştırırken veya açarken dosyaların modunu, sahipliğini ve zaman damgalarını koruduğunu unutmayın. Gzip dosya formatı, P. Deutsch, GZIP dosya formatı spesifikasyonu sürüm 4.3, https://www.ietf.org/rfc/rfc1952.txt, Internet RFC 1952’de (Mayıs 1996) belirtilmiştir. Zip deflasyon formatı, P. Deutsch, DEFLATE Sıkıştırılmış Veri Formatı Spesifikasyonu sürüm 1.3, https://www.ietf.org/rfc/rfc1951.txt, Internet RFC 1951’de (Mayıs 1996) belirtilmiştir. Ascii metin modu: yerel kuralları kullanarak satır sonlarını dönüştürün. Bu seçenek yalnızca bazı Unix olmayan sistemlerde desteklenir. MS-DOS için, CR LF, sıkıştırma sırasında LF’ye dönüştürülür ve açma sırasında LF, CR LF’ye dönüştürülür. sıkıştırılmış boyut: sıkıştırılmış dosyanın boyutu; sıkıştırılmamış boyut: sıkıştırılmamış dosyanın boyutu; oran: sıkıştırma oranı (bilinmiyorsa %0,0); sıkıştırılmamış_adı: sıkıştırılmamış dosyanın adı. Sıkıştırılmış .Z dosyaları gibi gzip formatında olmayan dosyalar için sıkıştırılmamış boyut -1 olarak verilir. Böyle bir dosyanın sıkıştırılmamış boyutunu elde etmek için şunları kullanabilirsiniz: zcat dosyası.Z | wc -c –verbose seçeneğiyle birlikte aşağıdaki alanlar da görüntülenir: yöntem: sıkıştırma yöntemi; crc: sıkıştırılmamış verilerin 32-bit CRC’si; tarih ve saat: sıkıştırılmamış dosya için zaman damgası. Şu anda desteklenen sıkıştırma yöntemleri söndürme, sıkıştırma, lzh (SCO sıkıştırma -H) ve paketlemedir. crc, gzip formatında olmayan bir dosya için ffffffff olarak verilir. –name ile, sıkıştırılmamış ad, tarih ve saat, varsa sıkıştırılmış dosyada depolananlardır. –verbose ile, bazı boyutlar bilinmiyorsa, tüm dosyalar için boyut toplamları ve sıkıştırma oranı da görüntülenir. –quiet ile başlık ve toplam satırları görüntülenmez. -S .suf, –sonek .suf
Birden çok sıkıştırılmış dosya birleştirilebilir. Bu durumda gunzip, tüm üyeleri bir kerede çıkaracaktır. Örneğin: …sonra, … şuna eşittir: Bir .gz dosyasının bir üyesinin zarar görmesi durumunda, diğer üyeler hala kurtarılabilir (hasarlı üye kaldırılırsa). Ancak, tüm üyeleri aynı anda sıkıştırarak daha iyi sıkıştırma elde edebilirsiniz, örneğin: … şundan daha iyi sıkıştırır: Daha iyi sıkıştırma elde etmek için birleştirilmiş dosyaları yeniden sıkıştırmak istiyorsanız, şunları yapın: Sıkıştırılmış bir dosya birkaç üyeden oluşuyorsa, –list seçeneği tarafından bildirilen sıkıştırılmamış boyut ve CRC yalnızca son üye için geçerlidir. Tüm üyeler için sıkıştırılmamış boyuta ihtiyacınız varsa, şunları kullanabilirsiniz: Üyelerin daha sonra bağımsız olarak çıkarılabilmesi için birden çok üyeli tek bir arşiv dosyası oluşturmak istiyorsanız, tar veya zip gibi bir arşivleyici kullanın. GNU tar, gzip’i şeffaf bir şekilde çağırmak için -z seçeneğini destekler. gzip, tar’ın yerine geçecek şekilde değil, tamamlayıcı olarak tasarlanmıştır. GZIP ortam değişkeni, gzip için bir dizi varsayılan seçeneği tutabilir. Bu seçenekler önce yorumlanır ve açık komut satırı parametreleri tarafından üzerlerine yazılabilir. Örneğin, sh için: csh için: MS-DOS için: Vax/VMS’de, programın çağrılması için simge seti ile bir çakışmayı önlemek için ortam değişkeninin adı GZIP_OPT’dir. Yukarıdaki örnekte, bu komut, file.txt dosyasını geçerli dizinde file.txt.gz olarak sıkıştıracaktır. Yukarıdaki örnekte, komut, file.txt dosyasını file.txt.gz’den çıkarır. Sıkıştırılmış bir zip dosyasının içeriğini çıkarmanız gerekirse, unzip komutunu da kullanabilirsiniz. Bir tarball (uzantı .tar.gz) ile uğraşıyorsanız, dosyaları çıkarmak için tar komutunu kullanın. Yukarıdaki örnekte, bu, myfile.tar.gz’nin içeriğini geçerli dizine çıkaracaktır. Daha fazla örnek için yukarıdaki gelişmiş kullanıma bakın. sıkıştır — Bir dosyayı veya dosyaları sıkıştırın.Sözdizimi
gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ... ]
gunzip [ -acfhlLnNrtvV ] [-S suffix] [ name ... ]
zcat [ -fhLV ] [ name ... ]
Seçenekler
-a, –ascii
-C,
–stdout,
–to-stdoutÇıktıyı standart çıktıya yazın; orijinal dosyaları değiştirmeden saklayın. Birkaç girdi dosyası varsa, çıktı bağımsız olarak sıkıştırılmış üyelerden oluşan bir diziden oluşur. Daha iyi sıkıştırma elde etmek için, tüm girdi dosyalarını sıkıştırmadan önce birleştirin.
-NS,
— sıkıştırmayı aç,
–açmakSıkıştırmayı aç.
-f, –kuvvet
Dosyanın birden fazla bağlantısı olsa veya ilgili dosya zaten mevcut olsa veya sıkıştırılmış veri bir terminalden okunmuş veya bir terminale yazılmış olsa bile sıkıştırmayı veya açmayı zorlayın. Girdi verileri gzip tarafından tanınan bir biçimde değilse ve –stdout seçeneği de verilmişse, girdi verilerini değişiklik yapmadan standart çıktıya kopyalayın: zcat’in cat gibi davranmasına izin verin. -f verilmezse ve arka planda çalışmazken, gzip mevcut bir dosyanın üzerine yazıp yazılmayacağını doğrulamak ister.
-h, –yardım
Bir yardım ekranı görüntüleyin ve çıkın.
-l, –liste
Her sıkıştırılmış dosya için aşağıdaki alanları listeleyin:
-L, –lisans
Gzip lisansını görüntüleyin ve çıkın.
-n, –isimsiz
Sıkıştırırken, varsayılan olarak orijinal dosya adını ve zaman damgasını kaydetmeyin. (Adın kesilmesi gerekiyorsa, orijinal ad her zaman kaydedilir.) Sıkıştırılmış dosyayı açarken, varsa orijinal dosya adını geri yüklemeyin (sıkıştırılmış dosya adından yalnızca gzip son ekini kaldırın) ve varsa orijinal zaman damgasını geri yüklemeyin ( sıkıştırılmış dosyadan kopyalayın). Bu seçenek, sıkıştırmayı açarken varsayılandır.
-N, –isim
Sıkıştırırken her zaman orijinal dosya adını ve zaman damgasını kaydedin; bu varsayılandır. Sıkıştırmayı açarken, varsa orijinal dosya adını ve zaman damgasını geri yükleyin. Bu seçenek, dosya adı uzunluğu sınırı olan veya bir dosya aktarımından sonra zaman damgasının kaybolduğu sistemlerde kullanışlıdır.
-q, –sessiz
Tüm uyarıları bastırın.
-r, –özyinelemeli
Dizin yapısını yinelemeli olarak gezin. Komut satırında belirtilen dosya adlarından herhangi biri dizinlerse, gzip dizine iner ve orada bulduğu tüm dosyaları sıkıştırır (veya gunzip durumunda bunları açar).
Sıkıştırırken, .gz yerine .suf son ekini kullanın. Boş olmayan herhangi bir son ek verilebilir, ancak dosyalar başka sistemlere aktarılırken karışıklığı önlemek için .z ve .gz dışındaki son eklerden kaçınılmalıdır. Sıkıştırılmış dosyayı açarken, bir girdi dosyası adından bir çıktı dosyası adı türetirken denenecek son ekler listesinin başına .suf ekleyin.
-t, –test
Ölçek. Sıkıştırılmış dosya bütünlüğünü kontrol edin.
-v, –ayrıntılı
ayrıntılı. Sıkıştırılmış veya açılmış her dosya için adı ve yüzde azaltmayı görüntüleyin.
-V, –versiyon
Sürüm. Sürüm numarasını ve derleme seçeneklerini görüntüleyin ve ardından çıkın.
-#, –hızlı, –en iyi
Sıkıştırma hızını belirtilen # rakamını kullanarak düzenleyin; burada (örneğin) -1 veya –fast en hızlı sıkıştırma yöntemini (daha az sıkıştırma) ve -9 veya –best en yavaş sıkıştırma yöntemini (en iyi sıkıştırma) belirtir. Varsayılan sıkıştırma seviyesi -6’dır (yani, hız pahasına yüksek sıkıştırmaya eğilimli).
Gelişmiş kullanım
gzip -c file1 > foo.gz
gzip -c file2 >> foo.gz
gunzip -c foo
cat file1 file2
cat file1 file2 | gzip > foo.gz
gzip -c file1 file2 > foo.gz
gzip -cd old.gz | gzip > new.gz
gzip -cd file.gz | wc -c
Çevre
GZIP="-8v --name"; export GZIP
setenv GZIP "-8v --name"
set GZIP=-8v --name
Örnekler
Sıkıştırma:
gzip file.txt
Genişleme:
gunzip file.txt.gz
tar -zxvf myfile.tar.gz
İlgili komutlar
pack — Dosyaları bir Huffman algoritması kullanarak sıkıştırın.
tar — Tar arşivlerinden dosya oluşturun, değiştirin, içeriğini listeleyin ve çıkarın.
unzip — Sıkıştırılmış dosyaları bir zip arşivinde listeleyin, test edin ve çıkarın.
zcat — Sıkıştırılmış dosyaların sıkıştırılmamış içeriğini yazdırın.