← man/archiving_and_compression
unzipsfx — man unzipsfx — 80×24
ugur@toprak:~/man/archiving_and_compression$man unzipsfx
Bölüm 1 Arşivleme & Sıkıştırma

unzipsfx

ZIP arşivlerinin önüne eklemek için kendiliğinden açılan (self-extracting) taslak

Sinopsis

       <unzipsfx+arşiv kombinasyonunun adı> [-cfptuz[ajnoqsCLV$]] [dosya(lar) ... [-x yadsınan_dosya(lar) ...]]

Açıklama

unzipsfx, kendiliğinden açılan arşivler oluşturmak üzere mevcut ZIP arşivlerinin önüne eklenmek üzere tasarlanmış, unzip(1L) programının değiştirilmiş bir sürümüdür. unzipsfx, bayrak olmayan ilk argümanını çıkarılacak zip dosyası olarak almak yerine, kendisini çağrıldığı isim altında arar ve eklenen arşivin içeriğini test eder veya çıkarır. Yürütülebilir taslak arşive ek hacim kazandırdığından (bunun tek amacı olabildiğince küçük olmaktır), normal unzip'teki daha az hayati öneme sahip birtakım yetenekler kaldırılmıştır. Bunlar arasında kullanım (veya yardım) ekranı, listeleme ve tanısal işlevler (-l ve -v), daha eski sıkıştırma biçimlerinin (reduce'', shrink'' ve implode'' yöntemleri) sıkıştırmasını açma yeteneği yer alır. Geçerli dizinden başka bir dizine çıkarma yeteneği, UnZipSFX 5.5 sürümünden bu yana varsayılan olarak etkinleştirilen bir derleme zamanı seçeneği olarak seçilebilir. Benzer şekilde, şifre çözme bir derleme zamanı seçeneği olarak desteklenir ancak ekli arşiv şifrelenmiş dosyalar içermediği sürece bundan kaçınılmalıdır. Sürüm 5.5'ten başlayarak, başka bir derleme zamanı seçeneği basit bir çıkarma işleminden sonra komut çalıştır'' özelliği ekler. Bu özellik şu anda ``farklı dizine çıkarma'' özelliğiyle uyumsuzdur ve varsayılan olarak devre dışı bırakılmıştır.

unzipsfx ile yapılan kendiliğinden açılan arşivlerin, farklı işletim sistemleri arasında unzip yürütülebilir dosyasının kendisinden daha fazla (veya daha az) taşınabilir olmadığını unutmayın. Genel olarak, örneğin belirli bir Unix sisteminde yapılan kendiliğinden açılan bir arşiv, yalnızca aynı Unix türü altında kendiliğinden açılacaktır. Normal unzip, gömülü arşivi normal bir zip dosyasında olduğu gibi çıkarmak için hala kullanılabilir; ancak zip dosyasının başlangıcındaki ekstra baytlar hakkında zararsız bir uyarı üretecektir. Buna rağmen, kendiliğinden açılan arşiv teknik olarak geçerli bir ZIP arşivi değildir ve PKUNZIP bunu test edemeyebilir veya çıkaramayabilir. Bu sınırlama, arşivin oluşturulduğu basit yöntemden kaynaklanmaktadır; dahili dizin yapısı, orijinal zip dosyasının önüne eklenen ekstra baytları yansıtacak şekilde güncellenmez.

Argümanlar

[dosya(lar)] İşlenecek arşiv üyelerinin isteğe bağlı bir listesi. Birden fazla üyeyi eşleştirmek için Unix egrep(1) programındakilere benzer düzenli ifadeler (joker karakterler) kullanılabilir. Bu joker karakterler şunları içerebilir:

  •  0 veya daha fazla karakterden oluşan bir diziyi eşleştirir
    

? tam olarak 1 karakteri eşleştirir

[...] köşeli parantez içinde bulunan herhangi bir tek karakteri eşleştirir; aralıklar bir başlangıç karakteri, bir tire ve bir bitiş karakteri ile belirtilir. Sol köşeli parantezi bir ünlem işareti veya düzeltme işareti (!' veya ^') takip ediyorsa, köşeli parantez içindeki karakter aralığı tamamlanır (yani, köşeli parantez içindeki karakterler dışındaki her şey bir eşleşme olarak kabul edilir).

(İşletim sistemi tarafından yorumlanabilecek veya değiştirilebilecek her türlü karakteri, özellikle Unix ve VMS altında tırnak içine aldığınızdan emin olun.)

[-x yadsınan_dosya(lar)] İşlem dışı tutulacak arşiv üyelerinin isteğe bağlı bir listesi. Joker karakterler dizin ayırıcıları (`/') ile eşleştiğinden, bu seçenek alt dizinlerde bulunan dosyaları hariç tutmak için kullanılabilir. Örneğin, ``foosfx *.[ch] -x /'' komutu ana dizindeki tüm C kaynak dosyalarını çıkarır, ancak alt dizinlerdekileri çıkarmaz. -x seçeneği olmasaydı, zip dosyası içindeki tüm dizinlerde bulunan tüm C kaynak dosyaları çıkarılırdı.

unzipsfx, SFX_EXDIR tanımlı olarak derlenmişse, aşağıdaki seçenek de etkinleştirilir:

[-d hedef_dizin] Dosyaların çıkarılacağı isteğe bağlı bir dizin. Varsayılan olarak, tüm dosyalar ve alt dizinler geçerli dizinde yeniden oluşturulur; -d seçeneği, rastgele bir dizine çıkarma yapılmasına izin verir (her zaman o dizine yazma izniniz olduğu varsayılır). Seçenek ve dizin aralarında boşluk bırakılmadan birleştirilebilir, ancak bunun normal kabuk davranışının engellenmesine neden olabileceğini unutmayın. Özellikle, -d ~'' (tilda) Unix C kabukları tarafından kullanıcının ana dizininin adına genişletilir, ancak -d~'' geçerli dizinin harfi harfine ``~'' adlı bir alt dizini olarak kabul edilir.

Seçenekler

unzipsfx, şu unzip(1L) seçeneklerini destekler: -c ve -p (standart çıktıya/ekrana çıkarma), -f ve -u (çıkarma sırasında mevcut dosyaları tazeleme ve güncelleme), -t (arşivi test etme) ve -z (arşiv yorumunu yazdırma). Tüm normal listeleme seçenekleri (-l, -v ve -Z) kaldırılmıştır, ancak test seçeneği (-t) ``fakir adamın'' listelemesi olarak kullanılabilir. Alternatif olarak, kendiliğinden açılan arşivler oluşturanlar zip dosyası yorumuna kısa bir liste eklemek isteyebilirler.

Bu seçeneklerin daha eksiksiz bir açıklaması için unzip(1L) kılavuzuna bakın.

Niteleyiciler

unzipsfx şu anda tüm unzip(1L) niteleyicilerini desteklemektedir: -a (metin dosyalarını dönüştürme), -n (asla üzerine yazmama), -o (sormadan üzerine yazma), -q (sessizce çalışma), -C (adları büyük/küçük harfe duyarsız eşleştirme), -L (büyük harfli işletim sistemi adlarını küçük harfe dönüştürme), -j (yolları çöpe atma) ve -V (sürüm numaralarını koruma); ayrıca şu işletim sistemine özgü seçenekler: -X (VMS sahibi/koruma bilgilerini geri yükleme), -s (dosya adlarındaki boşlukları alt çizgiye dönüştürme [DOS, OS/2, NT]) ve -$ (birim etiketini geri yükleme [DOS, OS/2, NT, Amiga]).

(Arşivin oluşturucusunun metin dosyalarının yerel işletim sistemi için uygun biçimde olmasını sağlaması yeterince basit olduğundan, gelecekteki sürümlerde normal ASCII metin dönüştürme desteği kaldırılabilir. zip dosyası biçimi metin dosyalarının ASCII olarak depolanmasını gerektirdiğinden, EBCDIC dönüştürme desteği elbette devam edecektir.)

Bu niteleyicilerin daha eksiksiz bir açıklaması için unzip(1L) kılavuzuna bakın.

Ortam Seçenekleri

unzipsfx, unzip(1L) programıyla aynı ortam değişkenlerini kullanır, ancak bu durum muhtemelen yalnızca kendiliğinden açılan arşivi oluşturan ve test eden kişi için bir sorun teşkil edecektir. Ayrıntılar için unzip(1L) kılavuzuna bakın.

Şifre Çözme

Şifre çözme, tam olarak unzip(1L) programında olduğu gibi desteklenir; yani şifre(ler) için yankısız bir istemle etkileşimli olarak. Ayrıntılar için unzip(1L) kılavuzuna bakın. Arşivde şifrelenmiş dosya yoksa, unzipsfx programının şifre çözme desteğine sahip bir sürümünü kullanmak için hiçbir neden olmadığını bir kez daha unutmayın; bu yalnızca arşivin boyutunu artırır.

Otomatik Çalıştırma Komutu

unzipsfx, CHEAP_SFX_AUTORUN tanımlı olarak derlendiğinde, basit bir ``otomatik çalıştırma komutu'' özelliği desteklenir. Zip arşivi yorumuna şu formatı kullanarak bir komut girebilirsiniz:

$AUTORUN$>[komut satırı dizesi]

unzipsfx, Zip arşivi yorumunun başlangıcında $AUTORUN$>'' belirtecini algıladığında, yorumun ilk satırının geri kalanını (ilk yeni satır karakterine kadar) C rtl system'' işlevini kullanarak işletim sistemine bir kabuk komutu olarak iletir. Komutu yürütmeden önce unzipsfx, komutu konsolda görüntüler ve kullanıcıdan onay ister. Kullanıcı -q seçeneğini belirterek sorgulamayı kapattığında, otomatik çalıştırma komutları asla yürütmelere katılmaz.

Arşiv yorumunun ek metin satırları içermesi durumunda, -q seçeneğiyle sessiz çalışma istenmediği sürece, ilk satırı takip eden arşiv yorumunun geri kalanı normal şekilde görüntülenir.

Örnekler

       Mevcut bir zip dosyası olan letters.zip dosyasından kendiliğinden açılan bir letters arşivi oluşturmak
       ve yeni arşivin izinlerini Unix altında herkes tarafından yürütülebilir olacak şekilde değiştirmek için:

       cat unzipsfx letters.zip > letters
       chmod 755 letters
       zip -A letters

       Aynı arşivi MS-DOS, OS/2 veya NT altında oluşturmak için (copy komutunun /b [ikili] seçeneğinin
       kullanımına dikkat edin):

       copy /b unzipsfx.exe+letters.zip letters.exe
       zip -A letters.exe

       VMS altında:

       copy unzipsfx.exe,letters.zip letters.exe
       letters == "$currentdisk:[currentdir]letters.exe"
       zip -A letters.exe

       (VMS append komutu da kullanılabilir. İkinci komut, yeni programı argüman alabilen bir
       ``yabancı komut'' olarak yükler. Üçüncü satır, Zip'in zaten bir yabancı komut olarak yüklü
       olduğunu varsayar.) AmigaDOS altında:

       MakeSFX letters letters.zip UnZipSFX

       (MakeSFX, UnZip kaynak dağıtımıyla ve Amiga ikili dağıtımlarıyla birlikte sunulur.
       ``zip -A'' komutu Amiga kendiliğinden açılan arşivlerinde çalışmaz.) Yeni oluşturulan kendiliğinden
       açılan arşivi test etmek (veya listelemek) için:

       letters -t

       Arşivin tamam olup olmadığını gösteren yalnızca bir özet mesajı yazdırarak letters arşivini sessizce test etmek için:

       letters -tqq

       Tüm içeriği geçerli dizine çıkarmak, gerektiğinde tüm dosyaları ve alt dizinleri yeniden oluşturmak için:

       letters

       Tüm *.txt dosyalarını çıkarmak için (Unix'te `*' karakterini tırnak içine alın):

       letters *.txt

       *.txt dosyaları dışındaki her şeyi çıkarmak için:

       letters -x *.txt

       Yalnızca README dosyasını standart çıktıya (ekrana) çıkarmak için:

       letters -c README

       Yalnızca zip dosyası yorumunu yazdırmak için:

       letters -z

Sınırlamalar

unzipsfx programının temel ve ilkesel sınırlaması, mimariler veya işletim sistemleri arasında taşınabilir olmaması ve dolayısıyla ortaya çıkan arşivlerin de taşınabilir olmamasıdır. Ancak bazı mimariler için sınırlı bir taşınabilirlik mevcuttur (örneğin, Intel tabanlı Unix'in bazı sürümleri arasında).

Mevcut uygulamadaki bir diğer sorun, başlangıcına ``çöp'' eklenmiş herhangi bir arşivin teknik olarak artık bir zip dosyası olmamasıdır (yukarıda belirtildiği gibi, zip dosyası kaydırmalarını uygun şekilde ayarlamak için zip(1) kullanılmadığı sürece). unzip(1) önüne eklenen baytları dikkate alır ve başta MacBinary olmak üzere bazı dosya aktarım protokollerinin de çöp eklediği bilindiğinden bunları yoksayar. Ancak PKWARE'in arşivleyici paketi, kaydırmaları ayarlanmadığı sürece değiştirilmiş arşivle işlem yapamayabilir.

unzipsfx, kullanıcının PATH değişkeni hakkında hiçbir bilgiye sahip değildir, bu nedenle genel olarak bir arşiv çağrıldığında ya geçerli dizinde bulunmalı ya da tam veya göreli bir yol belirtilmelidir. Bir kullanıcı arşivi geçerli dizin dışındaki PATH içinde bulunan bir dizinden çıkarmaya çalışırsa, unzipsfx ``can't find myself'' (kendimi bulamıyorum) şeklinde bir uyarı yazdıracaktır. Bu durum Unix altında her zaman geçerlidir ve kullanılan derleyiciye bağlı olarak MS-DOS altında bazı durumlarda geçerli olabilir (Microsoft C program adını tam olarak nitendirir, ancak diğer derleyiciler bunu yapmayabilir). OS/2 ve NT altında tam yol adını sağlayan işletim sistemi çağrıları mevcuttur, bu nedenle arşiv kullanıcının yolundaki herhangi bir yerden çağrılabilir. AmigaDOS, Atari TOS, MacOS vb. için durum bilinmemektedir.

Yukarıda belirtildiği gibi, unzipsfx programını daha küçük hale getirmek için normal unzip(1L) işlevlerinden bazıları kaldırılmıştır: kullanım ve tanı bilgileri, listeleme işlevleri ve diğer dizinlere çıkarma yeteneği. Ayrıca, yalnızca depolanan ve söndürülen (deflated) dosyalar desteklenir. Ancak ikinci sınırlama esas olarak SFX arşivleri oluşturanları ilgilendirir.

VMS kullanıcıları, unzipsfx seçeneklerinden herhangi birini kullanabilmek için kendiliğinden açılan arşivleri yabancı komutlar olarak nasıl kuracaklarını bilmelidir. Bu, basit çıkarma için gerekli değildir, ancak bunu yapacak komut o zaman örneğin ``run letters'' (yukarıda verilen örneklere devam etmek gerekirse) haline gelir.

Amiga üzerindeki unzipsfx, çalışan kendiliğinden açılan arşivler oluşturmak için özel bir program olan MakeSFX'in kullanılmasını gerektirir; basit birleştirme çalışmaz. (Teknik yönelimli kullanıcılar için, ekli arşiv bir ``debug hunk'' olarak tanımlanır.) Eski Amiga'ların ROM seviyeleri ile daha yeni olanlar arasında uyumluluk sorunları olabilir.

unzip(1L) kılavuzundaki tüm mevcut hatalar unzipsfx için de geçerlidir.

Teşhis

unzipsfx programının çıkış durumu (hata seviyesi), unzip(1L) programınınkiyle aynıdır; ilgili kılavuz sayfasına bakın.

Ayrıca Bakınız

funzip(1L), unzip(1L), zip(1L), zipcloak(1L), zipgrep(1L), zipinfo(1L), zipnote(1L), zipsplit(1L)

Url

Info-ZIP ana sayfası şu anda şu adrestedir: http://www.info-zip.org/pub/infozip/ veya ftp://ftp.info-zip.org/pub/infozip/ .

Yazarlar

Greg Roelofs, UnZipSFX oluşturmak için gereken temel UnZip değişikliklerinden sorumluydu. Mevcut Zip-Bugs yazarlarının listesi için unzip(1L) kılavuzuna veya Info-ZIP katılımcılarının tam listesi için UnZip kaynak dağıtımındaki CONTRIBS dosyasına bakın.

Info-ZIP 20 April 2009 (v6.0) UNZIPSFX(1L)