Preskočiť na hlavný obsah

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

Komentáre

Obľúbené príspevky z tohto blogu

Ako previesť .mp3 súbor do .wav v Linuxe

Počas Vianočných sviatkov som skúmal ako previesť pesničky ktoré mám v počítači vo formáte MP3 do formátu audio CD ktorý by bez problémov načítala aj moja postaršia veža. Samozrejme našiel som veľa spôsobov avšak asi najjednoduchším bol veľmi jednoduchý shell skript. Inštalácia je veľmi jednoduchá: # Ubuntu sudo apt-get install mpg123 # Fedora yum install mpg123 Používať tento shell skript sa dá dvoma spôsobmi. Buď budete prevádzať každý MP3 súbor samostatne pomocou tohto príkazu: mpg123 -w vystup.wav vstup.mp3 Alebo využijete jednoduchú funkciu ktorú vložíte do súboru .bashrc v vašom koreňovom adresári. mp3towav(){      [[ $# -eq 0 ]] && { echo "mp3wav mp3file"; exit 1; }      for i in "$@"      do           # create .wav file name           local out="${i%/*}.wav"           [[ -f "$i" ]] && { echo -n "Processing ${i}..."; mpg123 -w ...

MathJax: Vkladanie matematických vzorcov na stránku

Asi 2 roky dozadu som tu písal o jazyku MathML. Jedná sa o jazyk z rodiny XML ktorý nám umožňuje vkladať na web matematické vzorce. Tento jazyk má však jednu nevýhodu a to, že aj na zapísanie jednoduchého a relatívne malého vzorca musíme napísať veľa neprehľadných riadkov. Tento problém zdá sa rieši MathJax . MathJax taktiež vkladá do stránky matematické vzorce ale dokáže ich vyrenderovať aj napríklad zo syntaxe ktorú používa LaTeX či AsciiMath a ta je oveľa kratšia a čitateľnejšia ako MathML. Použitie si ukážeme na jednoduchom zápise kvadratickej rovnice a vzorca slúžiaceho na jej výpočet. Ak $a \ne 0$, potom \(ax^2 + bx + c = 0\) má práve 2 korene ktoré vypočítame nasledovne: $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ Použitie LaTeX-u <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>MathJax LaTeX Test</title> <script type="text/x-mathjax-config"> MathJax.Hub.Config({tex2jax: {in...

Ako zrušiť odskok prvého riadku v LaTeXe

Dnes som riešil problém ktorý som si myslel, že nebude žiadnym problémom ale opak bol pravdou. Potreboval som aby mi pri jednoduchom LaTeX -ovom dokumente automaticky neodsadzovalo prvý riadok odstavca. Asi po hodinke hľadania som na to prišiel a naozaj to bolo veľmi jednoduché. Do hlavičky dokumentu stačilo napísať tento riadok: \setlength{\parindent}{0in} Toto však vytvorilo jeden problém s ktorým som nepočítal. Odstavce sú spolu a bez odsadenia prvého riadku čo znamená, že text je dosť neprehľadný. Potreboval som teda vyriešiť ďalší problém a to ako pred alebo za odstavec vložiť nejakú medzeru. Riešenie bolo opäť veľmi jednoduché. \setlength{\parskip}{5mm}