Timo Kinnunen
Särkiniementie 16 A 41
70700 Kuopio
Finland

Klikkaa tästä palataksesi takaisin Timon Serverimaailma etusivulle - Click here to return back to the front page of Timos' Serverimaailma homesite

Klikkaa tästä palataksesi takaisin Timon suomenkielisten DOS ja OS/2 -oppaiden valintasivulle - Click this link to Return back to The Page of Timo's Finnish DOS ja OS/2 manuals

Klikkaa tästä palataksesi takaisin sivulle Tietoo - Click this link to Return back to the page of Information

Unzip, Funzip ja Fiz Opas

6.3.1998

28.7.2017

Sisällys

Yleistä
Nimi ja Synopsis
Unzip Ohjelmakuvaus
Unzip Optiot
Modifioijat
Ympäristöoptiot
Salakirjoituksen purku
Käyttöesimerkkejä
Vihjeitä
Diagnostiikka
Puutteita
Funzip Ohjelma
Fiz Ohjelma

Yleistä

Unzip ohjelma kuuluu samaan perheeseen kuin Zip 2.1 ja Unzipsfx, joita olen esitellyt toisessa oppaassa. Tämä nyt käsiteltävä ohjelma on "sisällytetty" InfoZiP -ohjelmaan (OS/2). Olen suomentanut tämän tekstin ilman korvausta, enkä vaadi keneltäkään maksua asian tiimoilta, mutta samalla kaikki vastuu tässä esiteltyjen ohjelmien käytöstä jää teille. Tämä anteliaisuus johtuu siistä, että Unzip -ohjelma oli ilmainen. Sama pätee myös tässä oppaassa oleviin Funzip ja Fiz -ohjelmiin.

NIMI

Unzip - luetteloi, testaa ja purkaa tiivistettyjä tiedostoja ZIP -arkistossa.

SYNOPSIS

unzip [-Z] [-cflptuvz[abjnoqsCLMVX$]] tiedosto[.zip] [tiedosto(t) ...] [-x xtiedostot(t) ...] [-d exdir]

Unzip ohjelman kuvaus

Unzip -ohjelma luetteloi, testaa yms. - kaikkia ZIP -arkistoja, joita löytyy MS-DOS -järjestelmistä. Tämän lisäksi se toimii myös muissa järjestelmissä, ja siitä löytyy lähes kaikkiin niihin kompilaatiot, tai sellaiset voidaan ohjelmasta tehdä. Oletusarvona (ei optioita annettuna) ohjelma purkaa arkiston kaikki tiedostot oletushakemistoon, sekä sen alihakemistoihin - kunhan arkistotiedoston nimi annetaan. Tämän ohjelman ohjelmakumppani on Zip 2.1 (Zip(1L)), joka taas luo zip-arkistoja -sekä Unzipsfx -ohjelma. Tämän oppaan olen tehnyt alunperin EXE -muotoon, jolloin opas toimi yksinkertaisena hypertekstinä DOS-tilassa. Kuitenkin sen käyttöalue jäisi sellaisena vähäiseksi, ja siitä syystä olen tehnyt tämän juuri nyt lukemasi HTML-tiedoston. Zip ohjelmat ovat yhteensopivia käsittelemään arkistoja, jotka on luotu PKwaren Pkzip ja Pkunzip -DOS-pohjaisilla ohjelmilla, mutta monissa tapauksissa ohjelmien optiot voivat olla erilaisia, mikä johtuu siitä, että Zip 2.1 ja Unzip -ohjelmat apuohjelmineen on suunniteltu toimimaan myös mm. Unix ja VMS -ympäristöissä, sekä eräissä muissa arkkitehtuureissa.

ARGUMENTIT

tiedosto[.zip]

ZIP -arkistotiedoston polku. Mikäli tiedostospesifikaationa ovat jokerimerkit [*, ?], jokainen verrattava tiedosto prosessoidaan siinä järjestyksessä kuin käyttö- tai tiedostojärjestelmä määrää. Vain tiedostonimi voidaan esittää jokerimerkein, ei polkua. Jokerimerkit vastaavat Unixin egrep(1):n tavanomaisia ilmaisuja, ja saattavat sisältää:

*

vastaa 0:n -tai suuremman merkkimäärän sekvenssiä. Tämän merkin käyttö on tunnettua MS-DOS -järjestelmästä, ja sillä voidaan ilmaista yhdellä merkillä suurempi määrä merkkejä.

?

vastaa täsmällisesti yhtä merkkiä.

[...]

vastaa mitä tahansa yksittäistä merkkiä, joka on hakasulkeiden sisällä; vaihteluväli on ilmaistu aloitusmerkillä, tavutusmerkillä, ja lopetusmerkillä. Jos huudahdusmerkki seuraa vasemmanpuolesta sulkeista (`!' tai `^') niin sulkeiden sisällä olevia merkkejä ei oteta huomioon. [Varmistu siitä että erotat lainausmerkein jokaisen merkin, joka voisi tulla tulkituksi tai [uudelleen]muokatuksi käyttöjärjestelmän taholta - erityisesti tämä olisi huomioitava Unixissa ja VMS:ssä]. Mikäli mitään vastaavuuksia ei löydy, niin vastaavuuden oletetaan olevan kirjaimellisesti tiedostonimi, ja mikäli tämäkään ei onnistu, lisätään tiedostonimeen ZIP -tarkennin. Huomaa, että itsensäpurkavia tiedostoja tuetaan.

[file(s)]

Prosessoitavien arkistojäsenten lisävarusteluettelo erotettuna välilyönnein. VMS -versioiden, jotka on kompiloitu VMSCLI -määrittein, täytyy erottaa tiedostot toisistaan pilkuilla. Merkkejä, joiden suhteen käyttöjärjestelmät ovat kriittisiä täytyisi välttää. Kaikki järjestelmät eivät esimerkiksi hyväksy "-" -merkkiä, tai välilyöntiä - puhumattakaan yhtä useammista pisteistä tiedostonimissä.

[-x xfile(s)]

Niiden arkistojäsenten lisäluettelo, jotka suljetaan prosessoinnin ulkopuolelle. Koska jokerimerkit vastaavat hakemistoerottimia (`/'), täytyy tätä optiota käyttää erottamaan kaikkia niitä tiedostoja, jotka sijaitsevat alihakemistoissa.

Esimerkiksi komento:

``unzip foo *.[ch] -x */*''

purkaa kaikki C -lähdetiedostot, jotka ovat päähakemistossa, mutta ei yhtään tiedostoa, joka on missä tahansa alihakemistossa. Ilman -x optiota kaikki C -lähdetiedostot missä tahansa hakemistossa puretaan.

[-d exdir]

Optionaalinen hakemisto, jonne tiedostojen purku tapahtuu. Oletusarvona kaikki tiedostot ja alihakemistot luodaan vallitsevaan hakemistoon; -d optio sallii purun muuhunkin hakemistoon (oletuksena on tosin, että käyttäjällä on lupa kirjoittaa tähän hakemistoon). Tämän option ei tarvitse olla komentorivin lopussa; se hyväksytään myös .ZIP -tiedoston spesifikaatiossa (normaalien optioiden tapauksessa), sekä välittömästi zip-tiedoston spesifikaation jälkeen, tai -x option ja tiedostojen välissä. Erityisesti: kun optioon liitetään "tilde" -merkki, joka erotetaan siitä välilyönnillä - lajentuu se Unix C:n shelleissä käyttäjän kotihakemiston nimeksi, mutta jos tämä "tilde" (joka on espanjankielisessä tekstissä käytetty yläaaltoviiva) liitetään suoraan -d option perään, käsitellään "tilde"-merkkiä literaalisena, vallitsevan hakemiston alihakemistona.

Unzip optiot

Huomaa, että Unzip -ohjelma käyttää [näyttö]ruutua, jonka koko on rajoitettu 22:een tai 23:een riviin, jotta se tukisi kaikenlaisia fyysisiä laitteistoja. Tämä on jäänne perus-unzip-syntaksista kuin merkki siitä, mitä ohjelma kykenee käsittelemään.

-Z

zipinfo(1L) muoto. Jos komentorivin ensimmäisenä optiona on '-Z', pidetään jäljelläolevia optioita zipinfo(1L) optioina.

-c

Puretaan tiedostoja stdout/näyttö -laitteeseen (``CRT''). Tämä optio on samanlainen kuin '-p' paitsi että jokaisen tiedoston nimi tulostetaan samanlaisena kuin se puretaan, '-a' optio on sallittu, ja ASCII-EBCDIC konversio suoritetaan automaattisesti jos se on tarpeen. Huomaa, että tämä optio ei ole Unzip-ohjelman käyttöopastusruudun vaihtoehtojen joukossa.

-f

Tuoreistetaan olemassaolevia tiedostoja, eli puretaan vain ne tiedostot, joita on ennestään levyllä, ja jotka ovat vanhempia kuin arkistosta purettavat tiedostot. Oletuksena Unzip-ohjelma kysyy vahvistusta ennen päällekirjoitusta, mutta '-o' optiota voidaan käyttää tämän estämikseksi. Huomaa, että monissa järjestelmissä TZ (aikavyöhyke) ympäristö täytyy asettaa oikein jos käytetään '-f' ja '-u' optioita, ja halutaan niiden toimivan oikein. (Unix-järjestelmässä tämä muutuja asetetaan automaattisesti). Syyt tähän ovat hieman epäselvät, mutta niillä on jotakin yhteyttä eroihin, joita DOS-muotoisella, paikalliseen aikaan sidotulla päivämääräasetuksella on suhteessa Unix-järjestelmän käyttämään tiedostojen aikamääritykseen (aina GMT), ja siitä, että näitä on vertailtava keskenään. Tyypillinen TZ-arvo on ``PST8PDT'' (Yhdysvaltain [länsi]rannikon aika (Pasific) varustettuna automaattisella kesä- ja talviajan vaihdolla, tai päivänvalon tallennusajalla (Daylight Savings Time). Käytössä on myös ``MET-1METDST'' - eli "Keski-Euroopan aika varustettuna automaattisella kesä- ja talviajan vaihdolla, tai päivänvalon tallennusajalla (Daylight Savings Time).

-l

Luetteloidaan arkistotiedostoja (lyhyt esitysmuoto). Tällöin luetteloidaan nimet, tiivistämättömät tiedostokoot, ajankohdat, jolloin spesifioituja tiedostoja on muokattu, jne. Jos Unzip-ohjelma on kompiloitu OS2_EAS -määriteltynä, '-l' kytkintä käyttämällä saadaan myös sarake, jossa on luettelo tallennettujen OS/2:n lajennettujen attribuuttien (EA) koosta, ja luettelo, jossa on OS/2:n "access control lists" (ACL).

Tavallisen käyttäjän ei tarvitse suinkaan avata, tai testata tiedostoa varmistuakseen siitä, miten se on "kompiloitu". Riittää, kun hän imuroi järjestelmälleen tehdyn ohjelmaversion, sillä vain harvat kykenevät muuntamaan ohjelmia järjestelmästä toiseen. Yleensä arkistotiedostoon, jossa sovellus on, on lisätty tiedot siitä, missä järjestelmässä sitä käytetään.

Lisäksi näytetään zip-arkiston kommentti, sekä sen yksittäisten tiedostojen kommentit - jos sellaisia on. Jos tiedosto on arkistoitu vanhasta MSDOS:n FAT-tiedostojärjestelmästä, ja '-L' optiota on käytetty, konvertoidaan tiedostonimi pienille kirjaimille, ja se prefiksoidaan käyttäen (^) -merkkiä.

-p

Puretaan tiedostoja jonoon (stdout). Tällöin stdout:iin ei lähetetä muuta kuin tiedostojen data, ja tiedostot puretaan aina binaarimuodossa, juuri niinkuin ne on tallennettu (ei konversioita).

-t

Testataan arkiston tiedostoja. Jos käytetään tätä optiota, puretaan jokainen spesifioitu tiedosto muistiin, ja niitä verrataan näin alkuperäiseen kokoonsa laajennettua tiedostoa arkistossa olevaan tiedostoon CRC -testillä (cyclic redundancy check, an enhanced checksum), jossa muistissa olevan tiedoston CRC:tä verrataan arkistoon tallennettuna olevaan CRC-arvoon. Tässä kohden on hyvä huomata se, että arkistoon pakattuina tiedostojen fyysinen koko on pienempi kuin mitä se on kun tiedosto ladataan muistiin. Kuitenkin myös arkistossa tiedostosta on tiedot siitä, minkä kokoinen se on alunperin ollut ennen pakkaustaan. Jos kyse on yhdestä tiedostosta, joka on tiivistetty esimerkiksi PKlite -ohjelmalla, voidaan sitäkin pitää arkistona, johon on lisätty 'PK' -signatuuri, jotta "ohjelma tietäisi olevansa fyysisesti pakatussa tilassa". Tässä viimeksimainitussa tapauksessa arkisto siis itse tarkistaa oman tilansa.

-u

Päivitetään olemassaolevia tiedostoja, ja luodaan uusia, jos on tarpeen. Tämä optio suorittaa saman toiminnon kuin '-f' optio, purkamalla (kyselemällä) tiedostoja, jotka ovat uudempia kuin levyllä jo ennestään olevat tiedostot, ja lisäksi se purkaa myls ne tiedostot, joita ei vielä ole levyllä. Tämä toiminto sujuu varsin vaivattomasti mikäli pysyttäydytään yhdessä ja samassa käyttöjärjestelmässä - esimerkiksi MSDOS järjestelmässä, jonka käyttämä tiedostojen aikamääritys on aina paikallisen aikavyöhykkeen mukainen, ja siten sama kaikissa tietyn maantieteellisen alueen MSDOS järjestelmissä - mikäli nyt kellot ovat kutakuinkin ajassa. Sama pätee jos toimitaan pelkästään Unix-järjestelmässä, ja pakataan tai puretaan siinä. Myös Windows 95 määrittää oman aikansa yhden aikavyöhykkeiden mukaan, ja suorittaa kesä- ja talviajan vaihdon automaattisesti, mutta tämä ei kuitenkaan merkitse samaa kuin Unixin tapa tehdä näitä määrityksiä.

-v

Antaa laajempia tietoja Unzip-ohjelmasta, sekä tietoja zip-arkistoista käyttötavasta riippuen. Jos zip-tiedosto spesifioidaan tällä optiolla, eikä muita optioita käytetä, luetteloi ohjelma arkiston tiedostoista enemmän tietoja, ja lisää perus '-l' -infoon tietoja tiivistysmenetelmästä, tiivistyssuhteesta ja 32-bitin CRC -tarkistuksesta. Jos yhtään zip-tiedostoa ei spesifioida Unzip -ohjelmakomennon jälkeen '-v' optiota lukuuottamatta, ilmestyy näytölle diagnostinen ruutu, ja tavanomaisten tietojen lisäksi siinä on tiedot mm. ftp-osoitteista, siitä käyttöjärjestelmästä, jota varten ohjelma on kompiloitu, sekä siitä fyysisestä laitteistosta, jossa se kompiloitiin, sekä ajankohdasta, sekä kaikista niistä optioista, jotka voivat vaikuttaa ohjelman toimintaan. Modifioijana se työskentelee konjunktiossa muiden optioiden kanssa, kuten esimerkiksi option '-t' tuottaakseen laajempaa, tai enemmän "debugging" -tulostusta. Tätä ei ole vielä kokonaan istutettu ohjelmaan, mutta se tulee olemaan ohjelman tulevissa versioissa.

-z

Näytetään vain arkistokommentti. Tällainen kommentti liitetään arkistoon täsmälleen samaa kytkintä käyttäen niin Zip 2.1 -kuin PKzip 2.04g -ohjelmissa. Kun näin tehdään, voidaan arkistoon lisätä lyhyt tiedote esimerkiksi siitä, kuka arkistoinnin teki, tai tietoja tekijänoikeuksista. Edistyneempi tapa on ympätä arkistoon erillinen tekstitiedosto, jossa on laajempi selvitys.

Modifioijat

-a

Konvertoidaan tekstitiedostoja. Tavallisesti kaikki tiedostot puretaan sellaisina kuin ne on tallennettukin (kuten binaaritiedostoina). '-a' option käyttö aiheuttaa sen, että zip-arkiston tiedostot tunnistetaan tekstitiedostoina (ne, joissa on 't' otsikko zipinfo-luetteloinnissa 'b':n asemesta), jolloin ne puretaan automaattisesti sellaisinaan, konvertoiden rivinvaihtomerkit, tiedostonpäättymismerkit, ja esiintyvät merkit niinkuin tällöin on välttämätöntä. Esimerkiksi Unix-tiedostot käyttävät rivinvaihtomerkkinä rivinsyötön (LF) symbolia rivinlopetuksen (EOL) symbolin asemesta, ja niissä ei ole mitään tiedoston päättymisen [EOF] merkkiä. MacIntosh käyttää rivinvaihtoa (CR) ilmaisemaan rivinlopetusmerkkiä (EOL). Useimmat PC käyttöjärjestelmät käyttävät (CR+LF) merkkiä ilmaisemaan rivinlopetusta (EOL), sekä (control-Z) merkkiä ilmaisemaan tiedoston loppua (EOF). Tästä on olemassa poikkeuksia, kuten MS-DOS 6.0, ja tuoreemmat käyttöjärjestelmät, joiden QBASIC -pohjainen Edit.EXE ei käytä control-Z -merkkiä. IBM järjestelmät ja Michigan Terminal System käyttävät EBCDIC muotoa pikemminkin kuin yleistä ASCII muotoa, ja NT tukee Unicode -muotoa. Zip-ohjelman kyky tunnistaa erilaisia tekstitiedostoja on kaikkea muuta kuin täydellinen, sillä jotkut tekstitiedostot voivat olla tosiasiassa binaarisia, ja päinvastoin. Tästä syystä Unzip-ohjelma tulostaa (text) tai (binary) visuaalisena tarkistuksena käytettäessä '-a' optiota. Jos käytetään '-aa' optiota, kaikki tiedostot puretaan tekstinä - olipa niiden muoto mitä tahansa.

-b

Käsitellään kaikkia tiedostoja binaarisina (ei tekstikonversioita). Seuraavassa kuitenkin oikopolku: '---a'.

-C

Tässä vertaillaan tiedostonimiä tapaus tapaukselta. Unzip-filosofia voidaan kiteyttää: "saat juuri sitä mitä kysytkin". Koska jotkut tiedostojärjestelmät ovat täysin tapauskohtaisesti toimivia (erityisesti ne, jotka toimivat Unix-käyttöjärjestelmän alaisuudessa). Tämä tarkoittaa esimerkiksi sitä, että kannattaa kiinnittää huomiota sihen, käytetäänkö tiedostoja nimettäessä isoja- vai pieniä kirjaimia. Sekä zip-arkistojen, että Unzip-ohjelman oletusarvoinen toiminta on huomioida tapauskohtaisesti sekä jokerimerkkejä, että literaalisia tiedostonimiä. Tästä syystä - jos spesifioidaan komentorivillä "makefile", tai "MAKEFILE", tai jos käytetään jokerimerkkejä, saadaan sitä, mitä niillä on haettu – kirjaimellisesti. Tämä ei kuitenkaan vastaa monien muiden käyttö- ja tiedostojärjestelmien tapaa toimia (esimerkkinä OS/2:n HPFS, joka voi säilyttää esimerkiksi "MAKEFILE" tai "makefile" tiedoston yhtäaikaisesti, mutta tunnistaa ne erillisinä, eli ei ole niiden merkitysopilliselle "samankaltaisuudelle" sensitiivinen). '-C' optiota voidaan käyttää pakottamaan tiedostonimien vertailu ei-sensitiiviseksi tapausten suhteen. Tässä tapauksessa kaikki "makefile" -tiedostot, olipa ne kirjoitettu minkäkokoisilla kirjaimilla tahansa, tai ilmaistu jokerimerkeillä (esimerkiksi make*) voisivat tulla vertailussa tunnistetuiksi samaan tapaukseen kuuluviksi - jota ne monessa tapauksessa voivat ollakin. Optiota vaikuttaa vaikka käytetään tavallista tiedostoluetteloa, tai lueteloa, jossa ovat ne tiedostot, jotka on tarkoitus jättää operaation ulkopuolelle.

-j

Ei huomioida polkuja. Purettaessa arkiston hakemistorakennetta ei luoda uudelleen levylle, vaan kaikki tiedostot puretaan (oletuksena) työhakemistoon.

-L

Konvertoidaan sellainen tiedostonimi pienille kirjaimille, joka on aluperin peräisin käyttö- tai tiedostojärjestelmästä, jossa käytetään tiedostonimissä vain isoja kirjaimia. (Tämä oli Unzip-ohjelman oletusarvoisena käyttäytymisenä aina versioon 5.11 saakka, josta asti oletusarvona on ollut vanha "käyttäytyminen" käytettäessä '-U' optiota). Riippuen arkistoijasta, voidaan yksittäistapaus-tiedostojärjestelmillä (VMS, vanha MS-DOS FAT, jne.) luodut tiedostot tallentaa kaikki isoin kirjaimin kirjoitetuilla tiedostonimillä, mikä voi olla rumaa tai sopimatonta kun puretaan sellaiseen tapauksia säilyttävään järjestelmään, kuten OS/2 HPFS, tai tapaus-sensitiiviseen järjestelmään, kuten Unix. Oletuksena Unzip-ohjelma luetteloi ja purkaa tällaisia tiedostonimiä tarkalleen niinkuin ne on arkistoon tallennettu. Optio '-L' aiheuttaa sen, että kaikki tiedostonimet konvertoidaan pienimme kirjaimille.

-M

Jonotetaan kaikki tulostettava sisäisen sivutuksen kautta, joka muistuttaa Unixmore(1) komentoa. Kun Unzip on esittänyt ruudullisen tulostetta, pysäyttää se vierityksen ja esittää kehoitteen -- More --. Seuraava ruudullinen saadaan näytölle painamalla "Enter" näppäintä, tai vaihtoehtoisesti välilyöntiä. Unzip-ohjelma voidaan lopettaa painamalla 'q' -näppäintä, ja joissakin järjestelmissä "Enter" näppäintä. Päinvastoin kuin Unixin more(1):ssä, ei käytettävissä ole etsintää tai muokkausta. Unzip-ohjelma ei myöskään osaa käsitellä oikein liian pitkiä rivejä, ja jos niitä esiintyy, se saattaa vierittää ylimmät rivit näytöltä ennenkuin ehdit niitä lukea vaihdettaessa sivua. Joissakin järjestelmissä näytöllä saatavissa olevien rivien lukumäärää ei ole määrätty, jolloin Unzip-ohjelma otaksuu siitä olevan 24.

-n

Ei päällekirjoiteta koskaan olemassaolevia tiedostoja. Jos tiedosto on jo olemassa levyllä, ohitetaan se purettaessa arkistoa ilman erillistä ilmoitusta. Oletuksena Unzip-ohjelma kysyy toimenpiteitä ennenkuin purkaa levylle arkistosta tiedoston, joka on ennestään levyllä. Käyttäjä voi valita vain tämän tiedoston päällekirjoituksen, kaikkien jo olemassaolevien tiedostojen päällekirjoituksen, tai kaikkien olemassaolevien tiedostojen päällekirjoituksen ohituksen - tai tiedoston uudelleennimeämisen -välillä.

-o

Tiedostot päällekirjoitetaan ilman erillistä varoitusta, tai kyselyä. Tämän option käyttö on vaarallista, ja sitä täytyy käyttää harkiten (sitä käytetään usein '-f' option kanssa).

-q

Operaatiot suoritetaan hiljaisesti taustalla (-qq = tätäkin hiljaisemmin). Tavallisesti Unzip-ohjelma tulostaa tiedostot, joita se purkaa tai testaa, käytetyt purkumenetelmät, kaikki tiedostojen- tai zip-tiedoston kommentit, joita arkistossa saattaa olla, sekä mahdollisen yhteenvedon toiminnan päätyttyä. '-q' optio vaikuttaa siten, että näitä ilmoituksia tulee vähän, ja '-qq' siten, ettei niitä tule näytölle lainkaan.

-s

[OS/2, NT, MS-DOS]

Konvertoi tidostonimissä olevat välilyönnit alleviivausmerkeiksi. Koska kaikki PC käyttöjärjestelmät sallivat välilyöntejä tiedostonimissä, Unzip-ohjelma oletuksena purkaa tällaiset tiedostonimet sellaisinaan. (esimerkiksi OS/2:n ``EA DATA. SF''). Tämä kyseinen tiedosto löytyy yleensä juurihakemistosta. Tämä saattaa pelästyttää, vanhempien järjestelmien käyttäjiä, koska erityisesti MSDOS ei tue välilyöntejä tiedostonimissä. Tällöin '-s' option käyttö voi olla ratkaisu. Onhan aina parempi saada jotakin talteen, kun ettei saa mitään, ja on aina helpompi nimetä tiedostoja uudelleen entisille nimille, kun arvailla mitä puuttuvat osat saattaisivat olla. Samantapainen ongelma voi tulla eteen ns. "pitkien tiedostonimien käsittelyssä", jossa vanhemman MSDOS -järjestelmät eivät osaa toimia oikein. Huomattakoon kuitenkin, että Windows 95 käyttöjärjestelmä tukee nimenomaisesti tällaisia uusia tiedostojen nimeämisominaisuuksia, ja suoraan sen "alaisuudessa" oleva DOS-ikkuna, tai kokoruutunäyttö ei kärsi tästä mitenkään - tavallisesti sille välilyöntejä ei yksinkertaisesti ole olemassakaan, tai ne eivät ainakaan sille "näy". Mutta on myös mahdollista käyttää optiota, jolla Windows 95:n DOS-komentoriviltäkin voidaan käsitellä pitkiä tiedostonimiä. Tästä asiasta saa lisätietoja mm. Resource Kit -ohjelmapakkauksen Windows Help -tiedostoista. Toisaalta on olemassa eräitä ulkoisia keinoja, joilla myös DOS voidaan saada hyväksymään joissakin tapauksissa välilyöntejä - kuten annettaessa Nortonin VL.EXE ohjelmalla esimerkiksi painoksten nimiä erottamalla annettava nimi lainausmerkein kummastakin päästään. Käytetäessä DOS:n LABEL komentoa tämä ei onnistu.

-U

Jätetään tiedostot suurikirjaimisiksi jos ne on luotu järjestelmissä MSDOS, VMS, jne. (vrt. '-L'). (poistetaan todennäköisesti tulevista versioista)

-V

Säilyttää (VMS) tiedostojen versionumerot. VMS tiedostot voidaan tallentaa versionumeroineen muodossa:

file.ext;##.

Oletuksena ``;##'' versionumerot poistetaan, mutta tämä optio sallii ne otettavan mukaan. (Tiedostojärjestelmissä jotka rajoittavat tiedostojen pituuden lyhyeksi, poistetaan versionumerot huolimatta option käytöstä.)

-X

[VMS, Unix, OS/2]

Palautetaan käyttäjä/suojausinfo (UIC) järjestelmässä VMS, tai käyttäjä- ja ryhmäinfo (UID/GID) Unix-järjestelmässä, tai "access control lists" (ACL) tietyissä OS/2:n verkkoversioissa (Warp Server with IBM LAN Server/Requester 3.0 to 5.0; Warp Connect with IBM Peer 1.0). Useimmissa tapauksissa tämä vaatii tiettyjä järjestelmäoikeuksia, mutta Unix-järjestelmässä käyttäjä, joka kuuluu useisiin ryhmiin, voi palauttaa tiedostoja, jotka kuuluvat mihin tahansa näistä ryhmistä, niin kauan kun 'user ID'it vastaavat hänen omaansa. Huomaa, että tavanomaiset tiedostoattribuutit palautetaan aina, ja '-X' optio soveltuu vain optionaaliseen, ja ylimääräiseen infoon joissakin käyttöjärjestelmissä. (Huomaa että NT:n "access control lists' ovat todennäköisesti yhteensopivia OS/2:n kanssa. Tulevaisuuden versiot sisältävät tuen myös ristialustaiselle talletukselle ja ACL:n palautukselle.)

-$

[MS-DOS, OS/2, NT]

Palautetaan painoksen nimi jos purkumedium on siirrettävä, eikä kiinteä (kuten on laita levykkeiden ja nauhojen tapauksessa). Jos optio esitetään '-$$' -muodossa voidaan myös kiintolevyt nimetä samalla tavoin. Oletuksena painoksen nimeä ei huomioida.

Ympäristöoptiot

Unzip-ohjelman käyttäytymistä voidaan muovata myös optioilla, jotka asetetaan ympäristömuuttujiksi. Tämä voidaan tehdä millä tahansa optiolla, mutta on hyödyllisin käytettäessä '-a, -L, -C, -q, -o, tai -n' -modifioijia, joita olemme käsitelleet edellä. Jos halutaan esimerkiksi Unzip-ohjelman toimivan niin hiljaisesti kuin mahdollista, ja että se raportoisi VAIN virheistä, voidaan käyttää seuraavia komentoja:

UNZIP=-qq; export UNZIPUnix Bourne shell
setenv UNZIP -qq Unix C shell
set UNZIP=-qqOS/2 tai MSDOS
define UNZIP_OPTS "-qq"VMS
(huom VMS: sulkeet pienille kirjaimille)

Ympäristöoptioita voidaan pitää vaikuttaessaan minkä tahansa komentorivioption kaltaisena, paitsi että ne ovat vaikuttavia ensimmäisinä komentorivin optioina. Jos niiden vaikutus halutaan poistaa, täytyy käyttää "miinus-operaattoria". Jos esimerkiksi halutaan poistaa yksi ylläolevan esimerkin hiljaisista 'flageista', käytetään komentoa:

unzip --q[muut optiot] zip-tiedosto

Ensimmäinen tavutusmerkki on normaali kytkinmerkki, ja seuraava on miinusmerkki, joka vaikuttaa 'q' optioon. Vaikutus tässä on tosin vain se, että yksi kvantti "hiljaisuudesta" poistetaan. Jos molemmat hiljaisuuden "flagit" haluttaisiin poistaa, täytyisi käyttää kahta (tai useampaakin) miinusmerkkiä:

unzip -t--q zip-tiedosto
unzip ---qt zip-tiedosto

Molemmat tavat ovat samanarvoisia. Tämä saatta vaikuttaa hämmentävältä, mutta se on intuitiivisesti järjellistä - eli ei oteta huomioon ensimmäistä tavutusmerkkiä, ja edetään siitä eteenpäin. Tämä jäsentely sopii yhteen myös Unixin nice(1):n kanssa. Niinkuin ylläolevissa esimerkeissä on esitetty, oletusmuuttujien nimet VMS järjestelmässä ovat UNZIP_OPTS (jossa symbolia käytetään asentamaan unzip vieraana komentona, koska se voisi muutoin tulla sekoitetuksi ympäristömuuttujiin), ja UNZIP kaikkiin muihin järjestelmiin. Koska UNZIPOPT on yhteensopiva zip(1L):n kanssa, myös se hyväksytään (älä kuitenkaan kysy miksi). Jos sekä UNZIP ja UNZIPOPT ovat määritellyt, on UNZIP niistä jälkimmäistä edellä. Unzip-ohjelman diagnostista optiota (joka on '-v' annettuna nimen jälkeen, ja jota ei seuraa yhtään muita määritteitä) voidaan käyttää tarkistettaessa kaikkia neljää Unzip- ja Zipinfo -ympäristömuuttujaa. Aikavyöhykemuuttuja (TZ) tulisi asettaa paikallisen aikavyöhykkeen mukaisesti, jotta '-f' ja '-u' toimisivat moitteettomasti. Tämä variaabeli voi olla välttämätön jotta purettujen tiedostojen aikamääritteet tulisivat oikein asetetuiksi.

Salakirjoituksen purku

Info-ZIP -ohjelmat tukevat salakirjoitettuja arkistoja, mutta johtuen Yhdysvaltain vientirajoituksista, ei salakirjoitusta, tai sen purkua pakata tavallisiin Zip, ja Unzip -ohjelmapaketteihin. Koska eurooppalaiset ovat kirjoittaneet lähdekoodit, ovat ne tästä syystä vapaasti saatavilla kautta maailman. Erillisestä jakelusta johtuen eivät kaikki Unzip-ohjelman kompiloidut versiot tuke salakirjoituksen purkua. Voit testata tätä asiaa yrittämällä sellaisen arkiston purkua, jonka salasanan tiedät. (tästä samasta syystä sinun tulisi myös luoda eräänlainen testiarkisto, jonka luot Zip-ohjelmilla, ja suojaat salasanalla - ja jonka pistät sitten talteen tulevaisuuden varalle. Voit kirjoittaa levykkeeseen, jossa tällainen testiarkisto on, sen salananan). Voit selvittää tukeeko Unzip-ohjelmasi salakirjoituksen purkua antamalla komennon:

unzip -v

Salakirjoituksen purkamiselle ei ole "runtime" optioita: jos zip-tiedoston jäsen on salakirjoitettu, kysyy Unzip salasanaa, mutta ei kaiuta näyttöön mitään sitä kirjoitettaessa. Unzip-ohjelma jatkaa saman salasanan käyttöä tiedostojen avaamisessa niin kauan kun se näyttää siihen soveltuvan; se tekee tämän testaamalla 12-bittistä headeria. Oikeaa salasanaa tarkistetaan aina verrattuna tähän headeriin, mutta on olemassa 1/256 mahdollisuus, että tapahtuu virhe. (Tämä on PKwaren zip-tiedoston turvallisuusominaisuus, joka estää väkivalloin tapahtuvat murrot, joilla muutoin saavutettaisiin se etu, että headerien nopealla skannauksella löydettäisiin oikeat salasanat.). Siinä tapauksessa, että on annettu väärä salasana, ja se silti läpäiseen headerin kautta tapahtuvan testin, luodaan joko väärä CRC puretulle datalle, tai vaihtoehtoisesti Unzip ei onnistu purkamisessa koska puretut salakirjoitusbitit eivät vastaa validia tiivistettyä datavirtaa. Jos ensimmäinen salasana ei onnistu jonkun tiedoston headeritestissä, kysyy Unzip-ohjelma toista salasanaa, jne. - aina siihen asti kun kaikki tiedostot on purettu. Huomaa, että jos salasanaa ei tiedetä, "null" -salasanan antaminen (eli <Enter>) tulkitaan signaalina sille, ettei kyselyjä enää esitetä. Tällöin arkistosta puretaan vain ne tiedostot joita ei ole salasanalla suojattu. (Tosiasiassa tämäkään ei täsmälleen pidä paikkaansa, sillä vanhemmat versiot zip(1L) ja zipcloak (1L) ohjelmista hyväksyivät "null" salasanoja, ja tästä syystä Unzip-ohjelma tarkistaa jokaisen salasanalla suojatun tiedoston myös sitä silmälläpitäen toimiiko "null" -salasanan kuittaus. Tästä taas voi seurata "vääriä positiivisia vasteita" (false positives) ja purkuvirheitä, joita on kuvattu edellä. Huomaa, että tällä hetkellä ei ole olemassa tapaa välttää interaktiivista salasanan purkua - ja samalla on aina mahdollista, että joku tuntematon seuraa tapahtumia. Tämä on toinen turvaan liittyvä piirre: Se, että komentoja annetaan "plain" -tekstillä, ja että niitä annetaan tiedostoihin kirjoitetuilta komentoriveiltä, muodostaa turvallisuusriskin, koska muutkin voivat nämä komennot nähdä. Itse asiassa salasanojen tunnistus on varsin helppoa, jos tuntee ohjelman kaikki komennot, ja kytkimet. Jos tällöin seuraa komentoriveille kirjoitettuja käskyjä, ja erityisesti kyselyjä (jos ne kaiuttuvat näytölle), niin annetut salasanat on todella helppo tunnistaa [sillä ne ovat aina jotakin muuta kuin kytkimiä, sillä ohjelma ei osaisi erottaa toisistaan kytkimiä, joita on tarkoitus käyttää toiminnan ohjaukseen kytkimen kaltaisista salasanoista, joita ohjelman tulisi osata sellaisiksi tulkita]. Hyvä ratkaisu tällaiseen pulmaan on se, että kriittiset arkistot purettaisiin aina koneissa, jotka on kytketty pois verkoista, tai joilla ei ole muitakaan yhteyksiä "ulkomaailmaan". Toinen hyvä ratkaisu on sopia kriittisten tiedostojen lähetyksestä ja vastaanotosta etukäteen - tai käyttää tavallista kirjekuorta, ja levykkeitä, tai varmuuskopionauhoja, jolloin turvallisuusriski pienenee oleellisesti. Näitä molempia voi käyttää yhdessä. Paras keino tietoturvallisuuden kannalta on puuhastella aina sellaista, josta kukaan ei ole millään tavoin kiinnostunut, tai olla aina ehdottoman rehellinen ja nuhteeton - eräänlainen "ryhti-reino", tai käyttää pieniä nöössipoikia juoksijalähetteinä, jotka kiidättävät levykkeitä ja nauhoja paikasta toiseen innosta läähätättäen ... ja vain siitä ilosta, että saavat olla TÖISSÄ Gustafssonin Kuparinpakotusliikkeessä, ja tietävät saavansa vatsansa täyteen jäätelöä "isosta astiasta" työn jälkeen. Siis: Ehdottomasti paras keino on tehdä aina vain jotakin sellaista, jossa ei ole mitään salattavaa. Hyvä kysymys onkin, mikä tässä maailmassa on sellaista, mikä täytyy kätkeä muilta?

KÄYTTÖESIMERKKEJÄ

Jos Unzip-ohjelmalla halutaan purkaa kaikki arkiston jäsenet työhakemistoon, ja sen alihakemistoi(ksi)hin, kirjoitetaan:

unzip letters

Jos halutaan purkaa arkisto 'letters.zip' vain työhakemistoon:

unzip -j letters

Jos halutaan testata 'letters.zip' arkisto, ja tulostaa vain hyvin lyhyt (OK) yhteenveto operaatiosta, kirjoitetaan:

unzip -tq letters

Jos halutaan testata kaikki oletushakemiston zip-tiedostot, ja tulostaa niistä yhteenvedot, kirjoitetaan:

unzip -tq \*.zip

(Merkki '\' vaaditaan vain silloin jos käyttöjärjestelmä laajentaa jokerimerkkejä - kuten mm. Unix tekee. Niiden asemesta voidaan käyttää erottimina " -merkkejä, kuten:

unzip source.zip "*.[fch]" Makefile -d /tmp

Palaamme tämän esimerkin selvitykseen kohta. Jos halutaan tulostaa arkiston 'letters.zip' jäsenet standardiin tulostukseen, joiden nimet päättyvät tarkenteeseen '.tex', ja konvertoida automaattisesti rivinloppumismerkit vastaamaan paikallisia sopimuksia, sekä jonottaa tulostus more(1):n kautta, kirjoitetaan:

unzip -ca letters \*.tex | more

Jos halutaan purkaa binaaritiedosto 'paper1.dvi' standardiin tulostukseen, ja jonottaa se tulostusohjelmaan, kirjoitetaan:

unzip -p articles paper1.dvi | dvips

Jos halutaan purkaa kaikki FORTRAN ja C -lähdekooditiedostot

--*.f, *.c, *.h, ja Makefile--

hakemistoon /tmp, kirjoitetaan komento:

unzip source.zip "*.[fch]" Makefile -d /tmp

(lainausmerkit ovat tarpeen vain Unix-järjestelmässä, ja vain jos globbaus on kytkettynä päälle). Jos halutaan purkaa kaikki FORTRAN ja C -lähdekooditiedostot ei-tapaussensitiivisesti (esimerkiksi poimien *.c ja *.C - tiedostot, sekä kaikki 'makefile', 'Makefile', 'MAKEFILE', tai vastaavat tiedostot) kirjoitetaan:

unzip -C source.zip "*.[fch]" makefile -d /tmp

Jos halutaan purkaa kaikki sellaiset tiedostot, mutta konvertoida kaikki isoilla kirjaimilla kirjoitetut tiedostonimet pienikirjaimisiksi (MSDOS, VMS), sekä konvertoida rivien loppumerkit vastaamaan paikallista käytäntöä (näin ei kuitenkaan käsitellä binaaritiedostoja) kirjoitetaan:

unzip -aaCL source.zip "*.[fch]" makefile -d /tmp

Jos halutaan purkaa ainoastaan uudemmat versiot niiden tiedostojen päälle, joita jo ennestään levyllä on, ja tehdään tämä ilman kyselyjä (HUOMAUTUS: ole tarkka purkaessasi yhdessä aikavyöhykkeessä zip-tiedostoja, jotka on luotu toisilla ZIP-työkaluilla, joissa ei ole aikavyöhykettä koskevaa tietoa mukana. Siirryttäessä aikavyöhykkeeltä toiselle saattavat jotkut sellaiset tiedostot, jotka yhdellä aikavyöhykkeellä ovat uusia, tulla tulkituiksi vanhoiksi, jos korvaavat tiedostot on luotu toisella aikavyöhykkeellä, ja päinvastoin.) kirjoitetaan:

unzip -fo sources

Jos halutaan purkaa tiedostojen uudemmat versiot, sekä sellaiset tiedosto, joita levyllä ei ennestään ole, kirjoitetaan:

unzip -uo sources

Jos halutaan näytölle Zip-ohjelmasta sitä koskevia tietoja, kirjoitetaan:

unzip -v

Seuraavissa viidessä esimerkkeissä otaksutaan, että UNZIP tai UNZIP_OPTS on asetettu toimintamuotoon '-q'.

1. Jos halutaan yksinkertainen hiljainen luettelointi:

unzip -l arkisto.zip

2. Jos halutaan kaksinkertainen hiljainen luettelointi:

unzip -ql arkisto.zip

(arkiston tarkenneosa .zip ei ole välttämätön.)

3. Jos halutaan standardi luettelointi:

unzip --ql arkisto.zip

tai

unzip -l-q arkisto.zip

tai

unzip -l--q arkisto.zip

(ylimääräiset miinukset eivät haittaa)

Vihjeitä

Koska ohjelman nykyinen ylläpitäjä on kohtalaisen laiskaa sorttia, on hän tehnyt pari hyödyllistä lyhennettä Unzip -ohjelman käyttöä helpottamaan:

'tt' = 'unzip -tq'
'ii' = 'unzip -Z

Tästä syystä voidaan kirjoittaa:

'tt zip-tiedosto'

jos halutaan testata arkistoa. Hyvällä onnella Unzip-ohjelma ilmoittaa, ettei arkistotiedoston tiivistetyssä datassa ole vikaa, jonka jälkeen voidaan huokaista helpotuksesta. Ohjelman ylläpitäjä on nähnyt myös hyödylliseksi asettaa UNZIP -ympäristömuuttuja arvoon '-aL', ja myös '-C' on lisätty. ZIPINFO -muuttuja on asetettu arvoon '-z'.

Diagnostiikka

Exit -status (tai error level) on määritelty PKwaren käytännön mukaan, jotka eivät kuitenkaan päde VMS järjestelmässä. Emme käy niitä kuitenkaan tässä tarkemmin läpi, koska niitä on käsitelty toisaalla, mutta toteamme, että ne ovat numeroita, jotka ilmestyvät näytölle ohjelman lopettaessa toimintansa tiettyjen ehtojen vallitessa.

Virheitä ja puutteita

Moniosaisia arkistoja ei vielä tueta, paitsi konjuktiossa Zip-ohjelmaan. (Kaikki osat tulee koostaa yhteen järjestyksessä, ja senjälkeen arkistossa tule ajaa komento:

zip -F

jotta arkistosta tulisi kiinteä, tai jotta se voitaisiin "fiksata". Arkistoja, jotka on luettu stadardissa syötössä ei vielä tueta, paitsi Funzip -ohjelman kanssa (ja silloinkin ainoastaan ensimmäinen arkiston jäsen voidaan purkaa).

(OS/2)

laajennettuja olemassaolevien hakemistojen attribuutteja ei tueta koskaan - mitä niiden "tuoreuden" määrittelyyn tulee. Tämä on kyseisestä käyttöjärjestelmästä johtuva puute. Unzip -ohjelmalla ei ole mitään keinoa määrittää ovatko tallennetut attribuutit uudempia vain vanhempia kuin olemassaolevat attribuutit.

[MS-DOS]

Jos puretaan tai testataan arkiston tietoja viallisesta levykkeestä, ja valitaan "Fail" -optio kun DOS ilmoittaa:

"Abort, Retry, Fail?''

voi Unzip -ohjelma täysin hyytyä, ja ehdottaa uudelleenkäynnistystä. Tämän asemesta tulisi kuitenkin painaa control-C (tai control-Break) Unzip -ohjelman päättämikseksi.

[VMS]

Kun purku tehdään johonkin toiseen kuin oletushakemistoon, vain [.foo] -syntaksi hyväksytään -d optiolle; yksinkertaista Unix foo -syntaksia ei oleta hiljaisesti huomioon. Jos purettava tiedosto on jo olemassa, Unzip -ohjelman vaihtoehtokysely sallii ainoastaan ylihyppäämisen, ylikirjoittamisen, tai uudelleennimeämisen; tulisi olla käytössä myös vaihtoehto luoda kokonaan uusi tiedostoversio. Ylikirjoittaminen ei tällaista tee, koska vanhaa versiota ei ylikirjoiteta, tai tuhota. Olemme jo käsitelleen Unzip -ohjelman -M ("more") -option yksinkertaisuutta ja sen rajoittunutta kykyä käsitellä näytön tulostusta. Se ei osaa katkaista pitkiä rivejä, ja voi siten aiheuttaa sen, että näytön yläreunan rivit rullaavat pois näytöltä ennekuin ne on ehditty lukea. Unzip -ohjelman tulisi määrittää jokainen näytölle mahtumaton rivinosa ylimääräisenä tulostettavana rivinä. Tämän mahdollistamiseksi tulisi tietää näytön koko, ja sen mitat.

DEC Ultrix

Unzip -ohjelma ei onnistu aina pitkissä zip-tiedostoissa. (huono CRC). Tämä johtuu todennäköisesti joko laitevirheestä (cache-muisti) tai käyttöjärjestelmän virheestä (improper handling of page faults?). Hakemistojen päivämääriä ja aikoja ei palauteta.

Funzip Ohjelma

Tämä ohjelma esitetään tässä erittelemättömänä ja yhtenä kappaleenaan, koska esitys on varsin lyhyt. Selvyyden vuoksi alakohdat esitetään korostettuina. On luonnollista, että ohjelman ilmaisuuden vuoksi myös tämä suomennos on ilmainen.

NIMI

funzip - suodatin, jolla puretaan jonossa .ZIP -arkisto

SYNOPSIS

[...] | funzip [-salasana] | [...]

funzip [-salasana] syöttö.zip |[...] funzip [-salasana] syöttö.gz | [...]

ARGUMENTIT

[-salasana]

Lisävaruste salasana käytettäväksi ZIP -arkistossa, jos se on salakirjoitettu. Salakirjoituksen purkua ei ehkä tueta joissakin ymäristöissä.

Ohjelman kuvaus

Funzip -ohjelma toimii suodattimena; se tarkoittaa sitä, että se olettaa että .ZIP -arkisto (tai Gzip -ohjelmalla tehty arkisto) asetetaan jonoon standardiin syöttöön, ja ohjelma purkaa arkiston ensimmäisen jäsenen stdout:iin. Jos käytössä on argumentti, tulee syöttö spesifioidusta tiedostosta stdin:n asemesta. Salakirjoitettua .zip -tiedostoa varten voidaan antaa salasana komentoriviltä (edeltää tiedostonimeä, jos sellainen on olemassa) prefiksaamalla salasana "-" -merkillä. Huomaa, että tässä on turvallisuusriski monissa järjestelmissä; monet prosesseista ovat näkyviä yksinkertaisten komentojen kautta (kuten UNIXissa ps(1)), ja komentorivien historioita voidaan lukea. Mikäli .ZIP -tiedoston ensimmäinen hakemisto (tms.) on salakirjoitettu. ja mitään salasanaa ei ole määritelty komentorivillä, niin tällöin käyttäjältää PYYDETÄÄN salasanaa, ja se ei tulostu konsolille. Kun Funzip -ohjelmalle annetaan rajoitus yksittäisten jäsenten purkamisen määrälle, on se hyödyllisimmillään yhdessä tar(1):n kanssa. Seuraava kappale kuvaakin juuri tällaista käyttöä, kuten tallennettaessa levyjä nauhalle:

Käytettäessä Funzip -ohjelmaa arkistotiedosto test.zip ensimmäisen jäsentiedoston purkamiseen jonoon:

funzip test.zip | more

Käytettäessä Funzip -ohjelmaa testamaan arkistotiedoston test.zip ensimmäistä jäsentiedostoa (kaikki virheet raportoidaan stadardivirheinä):

funzip test.zip > /dev/null

Käytettäessä Zip- ja Funzip -ohjelmia Compress(1) ja Zcat(1) ohjelmien asemesta (tai Gzip(1L) ja Gzcat(1L) tehtäessä varmuuskopioita nauhalle:

tar cf - . | zip -7 | dd of=/dev/nrst0 obs=8k
dd if=/dev/nrst0 ibs=8k | funzip | tar xf -

(jossa esimerkiksi nrst0 on SCSI nauha-asema).

Kun ajetaan salakirjoitettua tiedostoa jonoon more-kytkintä käyttäen, ja sallitaan Funzip -ohjelman ehdottaa salasanaa, pääte voi joskus palautua "non-echo" -muotoon. Tämä johtuu todennäköisesti rotu-olosuhteesta kahden eri ohjelman välillä; Funzip -ohjelma muuttaa päätemoodin ei-kaiutukselle ennekuin "more" lukee sen tilan, jonka jälkeen "more" palauttaa päätteen tähän muotoon ennen lopetusta. Tämä tilalle korjautuu suuntaamalla "nulliin":

dev\null

jono-ohjauksen asemesta "mooriin". Funzip -ohjelma kysyy salasanaa uudelleen, ja päättää terminaaliyhteyden normaalisti.

Tällä hetkellä ei ole olemassa keinoa purkaa ensimmäisenä .ZIP -arkistosta muuta kuin ensimmäinen jäsen, vaikka tarvetta olisi sille, että olisi mahdollista purkaa mikä tahansa jäsen ensinnä. Tämä olisi erityisen käyttökelpoista tapauksissa joissa .ZIP arkisto sisältyy johonkin toiseen arkistoon. Tapauksissa joissa ensimmäinen jäsen on hakemisto Funzip -ohjelma yksinkertaisesti luo tämän hakemistoon, ja päättää toimintansa. Funzip -ohjelman toiminnallisuus tulisi liittää elimellisesti Unzip -ohjelmaan.

Fiz 2.0 Ohjelma

Koska tämäkin esitys on Funzip -ohjelman oppaan tapaan lyhyt, en ole katsonut järkeväksi esittää tätäkään tarkemmin eriteltynä. Tässäkin olen korostanut alakohdat.

NIMI

fiz - tutkii vioittunutta zoo-arkistoa datan palauttamiseksi

SYNOPSIS

fiz arkisto[.zoo]

Ohjelman kuvaus

Fiz-ohjelmaa käytetään analysoimaan vaurioituneita zoo -arkistoja ja paikantamaan hakemistoja, ja tiedostojen dataa niissä. Tämänhetkinen Fiz -versio on 2.0, ja se on tarkoitettu käytettäväksi Zoo 2.0:n kanssa. Fiz ei tee mitään otaksumia arkiston struktuurista, vaan se etsii vain koko tutkittavasta arkistosta "tag" -arvoja, jotka merkitsevät hakemistojen sijaintia, ja tiedoston dataa. Zoo-arkistossa hakemisto sisältää tietoja säilytetystä tiedostosta - kuten esimerkiksi sen nimen, tiedon siitä onko tiedosto tiivistetty vai ei, luontiajankohtatiedon. Tiedoston data on aktuaalista arkistoidun tiedoston dataa, ja se voi olla joko alkuperäistä dataa, tai tulosta tiedoston tiivistyksestä. Jotta hakemisto löytyisi helposti, Fiz -ohjelma tulostaa missä arkisto sijaitsee, tulostaa hakemistopolut, ja tiedostonimet, joita arkistosta löytyi, ja tiedot siitä, näyttääkö hakemisto olevan viallinen (joka tila tunnistetaan havaitusta CRC-virheestä [*CRC Error*], ja hakemistosta löytyneeseen tiedostoon viittaavasta osoittimen arvosta. Jokaisesta löytyneestä blokista tiedoston dataa Fiz -ohjelma tulostaa tiedot, mistä blokki alkaa. Tapauksessa, että arkisto olisi vioittunut, hakemistosta löytyneeseen tiedostoon viittaava osoitin vastaa tietoa siitä, mistä Fiz -ohjelma paikantaa datan.

Fiz -VIRHEITÄ

Satunnaisbittmallit voivat joskus tulla virheellisesti tunnistetuiksi "tag" -arvoina. Tällaista tapahtuu harvoin, ja yrityksellä ja erehdyksellä edeten voidaan tällöinkin purkaa kaikki vahingoittumaton data arkistosta.

Fiz -DIAGNOSTIIKKA

Fiz -ohjelma päättää toimintansa aina statuskoodilla 0.

TULEVAISUUDEN NÄKÖALOJA

Automaattinen datan palautus vahingoittuneista arkistoista on mahdollista saavuttaa. Mutta koska vahingoittuneet arkistot ovat harvinaisia, ei Fiz -ohjelmaa ole tarpeen muuttaa lähitulevaisuudessa. On hyvä käyttää monenlaisia varmistuksia rinnakkain, ja samoin monenlaisia ohjelmia - ja erityisesti tarkata sitä, millaisia tiedostoja ollaan käsittelemässä. Edelleen on hyvä aina tarkistaa levykkeet - jos niitä käytetään arkistojen säilytykseen.