Gzip: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Ikruusam (talk | contribs)
No edit summary
Ikruusam (talk | contribs)
No edit summary
Line 94: Line 94:
</pre>
</pre>
</code>
</code>


== Kasutatud kirjandus ==
== Kasutatud kirjandus ==

Revision as of 23:28, 1 May 2011

Sissejuhatus

Linux keskkonna kaks enam kasutatavat arhiveerimiskäsku on tar ja gzip. Kui käsk tar on eelkõige mõeldud arhiivide loomiseks, siis käsk gzip on peamiselt kasutatav failide tihendamiseks ehk kokkupakkimiseks. Linuxi maailmas kasutatakse valdavalt just neid kahte käsku tihendatud arhiivide loomiseks. Esmalt lisatakse tar käsuga failid arhiivi ning hiljem gzip käsuga arhiiv tihendatakse.

Tihendamiseks kasutatakse DEFLATE kadudeta pakkimise algoritmi, mis on kombinatsioon LZ77 ja Huffmani kodeerimisest. Käsu rakendamisel toimub tihendamine alati, isegi kui tihendatud fail on sisendina saadud failist pisut suurem. Tihendamise aste sõltub sisendfailis sisalduvatest andmetest, kuid nt tekstilised andmed tihendatakse keskmiselt 60-70%.

Kasutamine

Käsu süntaks:

# gzip [options] [file(s)]

Käsu täitmise järel gzip arhiveerib sisendina saadud faili ning seejärel tihendab loodud arhiivi. Käsu üks olulisemaid erinevusi tar käsust on see, et ta ei liida sisendeid ühte faili kokku vaid loob iga sisendi jaoks oma arhiiv. Loodud arhiivile antakse sisendiks olnud faili nimi, mille lõppu lisatakse .gz laiend. Sisendiks olnud fail aga kustutatakse.

Faili nime võib gzip korral jätta sisendina ka andmata. Sellisel juhul võetakse sisendiks standartne sisendkanal, pakitakse ja tihendatakse selle sisu ning suunatakse edasi standartsesse väljundkanalisse.

Lahti pakitavad failid peavad lõppema .gz laiendiga.

Olulisemad võtmed:

-d, --decompress	Hõrendab, mitte ei tihenda
-h, --help		Abiinfo kuvamine
-l, --list		Tihendatud arhiivi sisu, maht ja tihenduse aste
-L, --license		gzip versiooni number ja  andmed litsentsi kohta
-N, --name		Säilitab sisendi nime ja selle loomise aja
-n, --no-name		Ei säilita sisendi nime ega selle loomise aega
-q, --quiet		gzip töötab hoiatusi kuvamata
-r, --recursive		Tihendab või hõrendab rekursiivselt etteantud kataloogis 
-t, --test		Arhiivi testimine terviklikkuse osas
-v  --verbose		Näitab, kui palju iga fail tihendatud on 
-1, --fast		Kiire tihendamine
-9, --best		Kõrgeim tihenduse aste

Nagu eelnevalt sai mainitud, ei oska gzip luua mitmest sisendist ühte tihendatud arhiivi ja seepärast kasutatakse arhiivi loomiseks enamasti tar käsku. Samas oskab tar kasutada läbi võtme -z ka gzip võimalusi, mis tähendab, et kohe peale arhiivi loomist saab see ka tihendatud. Kuid tuleb meeles pidada, et sellisel juhul .gz laiendit faili nimele automaatselt ei lisata, seepärast tuleks see laiend juba tar käsku kirjutada. Taoline käsk võiks siis näha välja selliselt:

# tar -czf arhiivi_nimi.tar.gz failid_arhiivi

Näited

Lihtne arhiivi loomine:

# gzip fail

Ühe failinime asemel võib anda ka mitu nime. Nimed võib asendada malliga. Järgnevas näites tihendatakse maksimaalse tihenduse astmega kõik jooksvas kataloogis olevad .txt laiendiga failid:

# gzip -9 *.txt

Järgnev näide tihendab kõik jooksvas kataloogis olevad failid ning näitab, kui palju on iga fail tihendatud:

# gzip -v *

fail1.txt 	59.0% -- replaced with fail1.txt.gz
fail2.txt 	59.0% -- replaced with fail2.txt.gz

Tihendatud arhiivide hõrendamine:

# gzip -d fail1.txt.gz fail2.txt.gz

Tihendatud arhiivi sisu, mahu ja tihenduse astme vaatamine:

# gzip -l fail.txt.gz

compressed	uncompressed	ratio	uncompressed_name
       482		1107	59.0%	fail.txt

Oletame, et on tekkinud vajadus saada gzip arhiivist bzip2 tihendatud arhiiv. Selleks ei ole vaja .gz faili hõrendada, et see siis bzip2 käsuga uuesti tihendada. Kiirem moodus on kasutada .gz faili hõrendamisel võtit -c. Sellega tekitatakse arhiivi hõrendamisel väljund voog, mis antakse üle kanali bzip2 sisendiks ning sealt omakorda suunatakse tihendamise tulem .bz2 arhiivi.

# gzip -dc failid.tar.gz | bzip2 > failid.tar.bz2 

Kasutatud kirjandus

Н. М. Войтов. Основы работы с Linux. ДМК Пресс (2010).

В. Костромин. Самоучитель Linux для пользователя. БХВ-Петербург (2003).

Phil Hughes. Linux For Dummies. Quick Reference, 2nd Edition. IDG Books (1998).

http://www.intuit.ru/department/os/baselinuxwork/4/11.html

http://en.wikipedia.org/wiki/DEFLATE

http://et.wikipedia.org/wiki/LZ77

http://et.wikipedia.org/wiki/Huffmani_kodeerimine


Autor

Ivo Kruusamäe AK21