Linuxový príkaz ZIP, príklady pre kompresiu a dekompresiu

Veľmi často vytvárame komprimované dáta pomocou archívu zip a tak isto často ich aj s týchto archívov čítame.

V Linuxe máme možnosť rovnako ako vo Windowse či MAC OS vytvárať archív zip v grafickom prostredí. Ja sa dnes však budem venovať tomu ako to spraviť pomocou príkazového riadku.

Vytvoril som si nejaký priečinok test v ktorom som si vytvoril 2 textové súbory na ktorých budem ukazovať nejaké príklady.

tomas@tomas:~/Dokumenty/tmp/test$ ls -lh
celkom 8,0K
-rwxr----- 1 tomas tomas  10 jan  9 17:03 hello
-rwxr----- 1 tomas tomas 562 jan  9 17:03 lipsum

Ako vytvoriť archív zip

Vytvorenie archívu zip je veľmi jednoduché. Najprv zadáme príkaz zip potom názov archívu a následne súbor(y) ktoré chceme do archívu vložiť. Takto:

tomas@tomas:~/Dokumenty/tmp/test$ zip archiv.zip lipsum hello
  adding: lipsum (deflated 45%)
  adding: hello (stored 0%)

... v priečinku nám pribudol archív archiv.zip.

Teraz si ukážeme ako súbory z archívu vybrať

Vybranie súborov alebo aj dekompresia je taktiež veľmi jednoduchá. Zadáme príkaz unzip a zaň vložíme názov archívu (v našom prípade archive.zip).

tomas@tomas:~/Dokumenty/tmp/test$ rm hello lipsum
tomas@tomas:~/Dokumenty/tmp/test$ ls -lh
celkom 4,0K
-rw-rw-r-- 1 tomas tomas 617 jan  9 17:27 archiv.zip
tomas@tomas:~/Dokumenty/tmp/test$ unzip archiv.zip
Archive:  archiv.zip
  inflating: lipsum
 extracting: hello
tomas@tomas:~/Dokumenty/tmp/test$ ls -lh
celkom 12K
-rw-rw-r-- 1 tomas tomas 617 jan  9 17:27 archiv.zip
-rwxr----- 1 tomas tomas  10 jan  9 17:03 hello
-rwxr----- 1 tomas tomas 562 jan  9 17:03 lipsum

Pred dekompresiou som si ešte odstránil pôvodné súbory lipsum a hello aby bolo zreteľné, že príkaz naozaj funguje.

Čítanie archívu zip

Určite nastal prípad keď ste sa chceli len pozrieť do archívu aké súbory tam sú. Aj na také sa myslelo a slúži na to takisto príkaz unzip avšak s parametrom -v

tomas@tomas:~/Dokumenty/tmp/test$ unzip -v archiv.zip
Archive:  archiv.zip
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
     562  Defl:N      307  45% 2014-01-09 17:03 d4cde097  lipsum
      10  Stored       10   0% 2014-01-09 17:03 0e09b976  hello
--------          -------  ---                            -------
     572              317  45%                            2 files

... vypísal sa nám archiv.zip do jednoduchej tabuľky.

V prípade, že by sme teraz chceli s tohto archívu prečítať napríklad súbor hello v ktorom je napísané "ahoj svet" opäť je to jednoduché a slúži nám na to parameter -c

tomas@tomas:~/Dokumenty/tmp/test$ unzip -c archive.zip hello
Archive:  archive.zip
 extracting: hello                   
ahoj svet

Chránený heslom

Teraz už vieme vytvoriť archív, prečítať si čo je vo vnútri a rozbaliť archív. Ale čo ak chceme vytvoriť archív chránený heslom alebo dokonca šifrovaný?
Vytvoriť archív chránený heslom je veľmi jednoduché pri vytváraní archívu pridáme parameter -P a zaň napíšeme heslo.

tomas@tomas:~/Dokumenty/tmp/test$ zip -P heslo archiv.zip hello lipsum 
  adding: hello (stored 0%)
  adding: lipsum (deflated 45%)

... následne pri rozbaľovaní alebo čítaní nejakého súboru z tohto archívu si po nás systém vypýta heslo.

tomas@tomas:~/Dokumenty/tmp/test$ unzip archiv.zip 
Archive:  archiv.zip
[archiv.zip] hello password: 

... po zadaní hesla a všetko správa tak ako predtým ako keby tam heslo nebolo.

Ako posledné predstavím funkciu gpg ktorá nám umožní náš archív zašifrovať nejakým heslom. Pri šifrovaní používame parameter -c ako crypt. Po zadaní príkazu ...

tomas@tomas:~/Dokumenty/tmp/test$ gpg -c archiv.zip 

... si systém vyžiada heslo na kryptovanie a vytvorí súbor archiv.zip.gpg ktorý je už zašifrovaný. Na odšifrovanie používame rovnakú funkciu avšak bez parametru -c.

tomas@tomas:~/Dokumenty/tmp/test$ gpg archiv.zip.gpg 
gpg: CAST5 zašifrované dáta
gpg: zašifrované jedným heslom
gpg: VAROVANIE: správa nemá ochranu integrity
Značky: