Gzip
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 kokku pakkimiseks. Linuxi maailmas kasutatakse valdavalt just neid kahte käsku pakitud arhiivide loomiseks. Esmalt liigutatakse tar
käsuga arhiveerimisele kuuluvad failid ühte faili kokku, mis hiljem gzip
käsuga kokku pakitakse.
Pakkimiseks kasutatakse DEFLATE
kadudeta pakkimise algoritmi, mis on kombinatsioon LZ77
ja Huffmani kodeerimisest
. Käsu rakendamisel toimub pakkimine alati, isegi kui saadud fail on sisendiks olnud failist pisut suurem. Pakkimise aste sõltub sisendfailis sisalduvatest andmetest, kuid nt tekstilised andmed pakitakse keskmiselt 60-70%.
Kasutamine
Käsu süntaks:
gzip [võtmed] [fail(id)]
Käsu täitmise järel gzip
tihendab sisendina saadud faili. Käsu üks olulisemaid erinevusi tar
käsust on see, et ta ei liiguta sisendfaile ühte faili kokku vaid loob iga sisendi jaoks oma kokku pakitud faili. Loodud failile 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 standardne sisendkanal, pakitakse selle sisu ning suunatakse edasi standardsesse väljund kanalisse.
Lahti pakitavad failid peavad lõppema .gz
laiendiga.
Olulisemad võtmed:
-d, --decompress Pakib lahti
-h, --help Abiinfo kuvamine
-l, --list Pakitud arhiivi sisu, maht ja kokku pakkimise aste
-f, --force Lubab nö. jõuga väljundfaili ülekirjutamist
-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 Pakib kokku või lahti rekursiivselt etteantud kataloogis
-t, --test Arhiivi testimine terviklikkuse osas
-v --verbose Näitab, kui palju iga fail on kokku pakitud
-1, --fast Kiire kokku pakkimine
-9, --best Kõrgeim pakkimise aste
Nagu eelnevalt sai mainitud, ei oska gzip
luua mitmest sisendist ühte arhiivfaili ja seepärast kasutatakse taoliste arhiivide loomiseks 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 kokku pakitud. 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