{"id":17499,"date":"2021-01-22T08:32:48","date_gmt":"2021-01-22T07:32:48","guid":{"rendered":"https:\/\/www.websupport.sk\/podpora\/?post_type=ht_kb&p=17499"},"modified":"2022-06-14T13:50:20","modified_gmt":"2022-06-14T11:50:20","slug":"archivacia-a-kompresia-suborov-v-linuxe","status":"publish","type":"ht_kb","link":"https:\/\/www.websupport.sk\/podpora\/kb\/archivacia-a-kompresia-suborov-v-linuxe\/","title":{"rendered":"Archiv\u00e1cia a kompresia s\u00faborov v Linuxe"},"content":{"rendered":"\n
Desiatky rokov s\u00fa tu s nami po\u010d\u00edta\u010de, ktor\u00e9 produkuj\u00fa st\u00e1le viac \u00fadajov. Zo za\u010diatku i\u0161lo o relat\u00edvne mal\u00fd po\u010det s\u00faborov s relat\u00edvne malou ve\u013ekos\u0165ou. Na pren\u00e1\u0161anie \u00fadajov vtedy sta\u010dilo \u00fadaje iba kompaktnej\u0161ie zoradi\u0165 do arch\u00edvu. \u010casto sa tak s\u00fabory pren\u00e1\u0161ali na p\u00e1skov\u00fdch kazet\u00e1ch, ktor\u00e9 sa v modernej\u0161om preveden\u00ed pou\u017e\u00edvaj\u00fa dodnes. Z poh\u013eadu softv\u00e9ru sa na tak\u00e9to pren\u00e1\u0161anie \u00fadajov pou\u017e\u00edval a st\u00e1le sa pou\u017e\u00edva popul\u00e1rny n\u00e1stroj TAR<\/strong> (T<\/strong>ape AR<\/strong>chive), ktor\u00fd z mno\u017estva s\u00faborov a prie\u010dinkov dok\u00e1\u017ee vytvori\u0165 jeden s\u00fabor s koncovkou .tar<\/strong> (arch\u00edv).<\/p>\n\n\n\n Dnes sa namiesto p\u00e1skov\u00fdch kaziet be\u017ene pou\u017e\u00edvaj\u00fa in\u00e9 offline \u010di online \u00falo\u017eisk\u00e1, ale princ\u00edpy archiv\u00e1cie a kompresie platia doteraz. Uk\u00e1\u017eeme si, ako v Ubuntu 20.04 pou\u017eijeme archiva\u010dn\u00fd n\u00e1stroj GNU TAR vo verzii 1.30, ktor\u00fd je predin\u0161talovan\u00fd na v\u00e4\u010d\u0161ine linuxov\u00fdch distrib\u00faci\u00ed.<\/p>\n\n\n\n V prvom rade je potrebn\u00e9 zabezpe\u010di\u0165 aktu\u00e1lnos\u0165 v\u0161etk\u00fdch bal\u00edkov. Nain\u0161talujeme teda v\u0161etok updatovan\u00fd softv\u00e9r pomocou dvoch pr\u00edkazov v jednej d\u00e1vke:<\/p>\n\n\n\n Ak syst\u00e9m n\u00e1jde aktualizovate\u013en\u00e9 bal\u00ed\u010dky, takto sa op\u00fdta, \u010di ich chcete za\u010da\u0165 in\u0161talova\u0165:<\/p>\n\n\n\n Stla\u010d\u00edme kl\u00e1ves V domovskom prie\u010dinku vytvor\u00edme \u0161trukt\u00faru prie\u010dinkov a do nich stiahneme s\u00fabory, ktor\u00e9 budeme archivova\u0165 a komprimova\u0165:<\/p>\n\n\n\n Teraz ulo\u017e\u00edme cel\u00fa \u0161trukt\u00faru prie\u010dinkov spolu so s\u00fabormi z prie\u010dinka Po porovnan\u00ed ve\u013ekosti prie\u010dinka Vytvorili sme arch\u00edv, porovnali sme jeho ve\u013ekos\u0165 so s\u00fabormi v prie\u010dinku, a teraz vytvoren\u00fd arch\u00edv rozbal\u00edme do prie\u010dinka Po rozbalen\u00ed arch\u00edvu do prie\u010dinku U\u017e sme spom\u00ednali, \u017ee vyhoda arch\u00edvu spo\u010d\u00edva v jednoduch\u0161ej manipul\u00e1cii pri pren\u00e1\u0161an\u00ed \u00fadajov. K tejto v\u00fdhode v\u0161ak pomocou komprim\u00e1cie m\u00f4\u017eeme prida\u0165 aj \u010fal\u0161ie dve v\u00fdhody: zmen\u0161enie arch\u00edvu (\u0161etrenie \u00falo\u017en\u00e9ho miesta), \u010do vedie k r\u00fdchlej\u0161iemu pren\u00e1\u0161aniu \u00fadajov. Vytvoren\u00fd archiv.tar m\u00f4\u017eeme komprimova\u0165 (zmen\u0161i\u0165, stla\u010di\u0165, zbali\u0165, spakova\u0165) r\u00f4znymi met\u00f3dami. Najpou\u017e\u00edvanej\u0161ie s\u00fa gzip<\/strong>, bzip2<\/strong> a xz<\/strong>.<\/p>\n\n\n\n Vytvor\u00edme arch\u00edv, ktor\u00fd skomprimujeme met\u00f3dou gzip (prv\u00fd riadok), potom met\u00f3dou bzip2 (druh\u00fd riadok) a nakoniec met\u00f3dou xz (tret\u00ed riadok):<\/p>\n\n\n\n Vytvoren\u00e9 komprimovan\u00e9 arch\u00edvy si teraz porovn\u00e1me s nekomprimovan\u00fdm arch\u00edvom:<\/p>\n\n\n\n a zist\u00edme, \u017ee nekomprimovan\u00fd arch\u00edv ( V praxi sa m\u00f4\u017ee Tak ako pri nekomprimovanom arch\u00edve, aj pri komprimovan\u00fdch arch\u00edvoch je mo\u017en\u00e9 vyp\u00edsa\u0165 obsah arch\u00edvu:<\/p>\n\n\n\n Rovnako je mo\u017en\u00e9 obsah komprimovan\u00e9ho arch\u00edvu rozbali\u0165. Oproti nekomprimovan\u00e9mu arch\u00edvu sa v\u0161ak komprimovan\u00fd arch\u00edv m\u00f4\u017ee rozbalova\u0165 viac \u010di menej pomal\u0161ie:<\/p>\n\n\n\n Ve\u013emi roz\u0161\u00edren\u00fd komprima\u010dn\u00fd form\u00e1t je ZIP<\/strong> a v tieni jeho \u00faspechu existuj\u00fa tie\u017e pomerne ob\u013e\u00faben\u00e9 RAR<\/strong> a 7z<\/strong>. Tieto 3 form\u00e1ty vytv\u00e1rame, prezer\u00e1me a rozba\u013eujeme pomocou n\u00e1strojov, ktor\u00e9 be\u017ene nie s\u00fa predin\u0161talovan\u00e9. Aby sme ich teda mohli za\u010da\u0165 pou\u017e\u00edva\u0165, mus\u00edme ich najsk\u00f4r nain\u0161talova\u0165:<\/p>\n\n\n\n Takto sa syst\u00e9m op\u00fdta, \u010di ich vybrat\u00e9 bal\u00ed\u010dky chcete za\u010da\u0165 in\u0161talova\u0165:<\/p>\n\n\n\n Stla\u010d\u00edme kl\u00e1ves Skomprimujeme prie\u010dinok archiv do form\u00e1tov ZIP, RAR a 7z:<\/p>\n\n\n\n Zobraz\u00edme obsah komprimovan\u00fdch arch\u00edvov:<\/p>\n\n\n\n Zistili sme, \u017ee cel\u00e1 \u0161trukt\u00fara prie\u010dinkov spolu so s\u00fabormi s\u00fa v arch\u00edvoch pr\u00edtomn\u00e9, a tak e\u0161te m\u00f4\u017eeme porovna\u0165, ktor\u00fd komprima\u010dn\u00fd form\u00e1t u\u0161etr\u00ed viac miesta:<\/p>\n\n\n\n Vyhral form\u00e1t 7z, nasledovan\u00fd form\u00e1tom RAR a v tesnom z\u00e1vese sa dr\u017e\u00ed ZIP.<\/p>\n\n\n\n No a takto komprimovan\u00e9 arch\u00edvy e\u0161te rozbal\u00edme:<\/p>\n\n\n\n Uk\u00e1zali sme, ako v Linuxe zbali\u0165 \u0161trukt\u00faru prie\u010dinkov spolu so s\u00fabormi do jedn\u00e9ho arch\u00edvu pomocou n\u00e1stroja GNU TAR vo verzii 1.30. Tie\u017e sme arch\u00edv komprimovali \u010dasto pou\u017e\u00edvan\u00fdmi met\u00f3dami gzip, bzip2 a xz. Do zoznamu komprima\u010dn\u00fdch n\u00e1strojov sme zaradili aj n\u00e1stroje ZIP, RAR a 7Zip.<\/p>\n","protected":false},"excerpt":{"rendered":" Desiatky rokov s\u00fa tu s nami po\u010d\u00edta\u010de, ktor\u00e9 produkuj\u00fa st\u00e1le viac \u00fadajov. Zo za\u010diatku i\u0161lo o relat\u00edvne mal\u00fd po\u010det s\u00faborov s relat\u00edvne malou ve\u013ekos\u0165ou. Na pren\u00e1\u0161anie \u00fadajov vtedy sta\u010dilo \u00fadaje iba kompaktnej\u0161ie zoradi\u0165 do arch\u00edvu. \u010casto sa tak s\u00fabory pren\u00e1\u0161ali na p\u00e1skov\u00fdch kazet\u00e1ch, ktor\u00e9 sa v modernej\u0161om preveden\u00ed pou\u017e\u00edvaj\u00fa dodnes….<\/p>\n","protected":false},"author":28,"template":"","format":"standard","meta":{"footnotes":""},"ht-kb-category":[435,33],"ht-kb-tag":[267,336,330,92],"class_list":["post-17499","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-nastroje","ht_kb_category-servery","ht_kb_tag-backup","ht_kb_tag-cli","ht_kb_tag-linux","ht_kb_tag-shell"],"yoast_head":"\n
Ako v\u0161ak mno\u017estvo \u00fadajov prib\u00fadalo, bolo potrebn\u00e9 \u00fadaje nie len zoradi\u0165 do arch\u00edvu, ale tie\u017e ich e\u0161te viac zmen\u0161i\u0165 (stla\u010di\u0165, zbali\u0165, spakova\u0165, komprimova\u0165), aby sa ich na jednu p\u00e1skov\u00fa kazetu zmestilo viac. Preto vznikli n\u00e1stroje ako gzip<\/strong>, bzip2<\/strong>, xz<\/strong>, lzip<\/strong>, lzma<\/strong>, zstd<\/strong> alebo compress<\/strong>. Tieto n\u00e1stroje dok\u00e1\u017eu arch\u00edv vytvoren\u00fd pomocou n\u00e1stroja TAR komprimova\u0165 tak, \u017ee v\u00fdsledn\u00fd s\u00fabor m\u00e1 men\u0161iu ve\u013ekos\u0165. Napr\u00edklad arch\u00edv ulo\u017een\u00fd v s\u00fabore archiv.tar<\/strong> s ve\u013ekos\u0165ou 1 GB bude ma\u0165 po kompresii n\u00e1zov s\u00faboru archiv.tar.gz<\/strong> (pou\u017eili sme n\u00e1stroj gzip) a men\u0161iu ve\u013ekos\u0165 0,5 GB. Komprimovan\u00edm pomocou n\u00e1stroja gzip sme teda v tomto pr\u00edklade u\u0161etrili a\u017e polovicu miesta.<\/p>\n\n\n\n<\/figure>\n\n\n\n
Archivujeme pomocou n\u00e1stroja GNU TAR<\/h2>\n\n\n\n
sudo apt update && sudo apt upgrade<\/pre>\n\n\n\n
Do you want to continue? [Y\/n]<\/em><\/pre>\n\n\n\n
y<\/code> ak chceme za\u010da\u0165 aktualiza\u010dn\u00fd proces alebo kl\u00e1ves
n<\/code>, ak aktualizova\u0165 nechceme. N\u00e1sledne stla\u010d\u00edme kl\u00e1ves
Enter<\/code>.<\/p>\n\n\n\n
mkdir -p ~\/archiv\/video ~\/archiv\/audio ~\/archiv\/obrazky ~\/archiv\/ostatne<\/pre>\n\n\n\n
curl -o ~\/archiv\/video\/video.mp4 https:\/\/file-examples-com.github.io\/uploads\/2017\/04\/file_example_MP4_1920_18MG.mp4<\/pre>\n\n\n\n
curl -o ~\/archiv\/audio\/audio.mp3 https:\/\/file-examples-com.github.io\/uploads\/2017\/11\/file_example_MP3_5MG.mp3<\/pre>\n\n\n\n
curl -o ~\/archiv\/obrazky\/obrazok.jpg https:\/\/file-examples-com.github.io\/uploads\/2017\/10\/file_example_JPG_2500kB.jpg<\/pre>\n\n\n\n
curl -o ~\/archiv\/obrazky\/obrazok.png https:\/\/file-examples-com.github.io\/uploads\/2017\/10\/file_example_PNG_3MB.png<\/pre>\n\n\n\n
curl -o ~\/archiv\/obrazky\/obrazok.svg https:\/\/file-examples-com.github.io\/uploads\/2020\/03\/file_example_SVG_30kB.svg<\/pre>\n\n\n\n
curl -o ~\/archiv\/ostatne\/dokument.docx https:\/\/file-examples-com.github.io\/uploads\/2017\/02\/file-sample_1MB.docx<\/pre>\n\n\n\n
curl -o ~\/archiv\/ostatne\/tabulka.xlsx https:\/\/file-examples-com.github.io\/uploads\/2017\/02\/file_example_XLSX_5000.xlsx<\/pre>\n\n\n\n
curl -o ~\/archiv\/ostatne\/prezentacia.pptx https:\/\/file-examples-com.github.io\/uploads\/2017\/08\/file_example_PPT_1MB.ppt<\/pre>\n\n\n\n
archiv<\/code> pomocou n\u00e1stroja GNU TAR do arch\u00edvu (s\u00faboru) s n\u00e1zvom archiv.tar (prv\u00fd riadok) a over\u00edme, \u010di s\u00fabor
archiv.tar<\/code> obsahuje naozaj v\u0161etky prie\u010dinky a s\u00fabory v nich (druh\u00fd riadok). Nakoniec e\u0161te nech\u00e1me vyp\u00edsa\u0165 ve\u013ekos\u0165 s\u00faboru
archiv.tar<\/code> (\u0161tvrt\u00fd riadok), aby sme ju mohli porovna\u0165 s ve\u013ekos\u0165ou prie\u010dinka
archiv<\/code> (tret\u00ed riadok).<\/p>\n\n\n\n
tar cf ~\/archiv.tar ~\/archiv<\/pre>\n\n\n\n
tar tf ~\/archiv.tar<\/pre>\n\n\n\n
du -s ~\/archiv<\/pre>\n\n\n\n
du -s ~\/archiv.tar<\/pre>\n\n\n\n
archiv<\/code> a s\u00faboru
archiv.tar<\/code> sme zistili, \u017ee sme po archiv\u00e1cii u\u0161etrili zanedbate\u013ene m\u00e1lo miesta. V\u00fdhoda v\u0161ak je, \u017ee m\u00e1me cel\u00fa \u0161trukt\u00faru prie\u010dinkov so s\u00fabormi v jednom s\u00fabore (
archiv.tar<\/code>) a m\u00f4\u017eeme ho tak jednoduch\u0161ie kop\u00edrova\u0165.<\/p>\n\n\n\n
archiv-tar<\/code> (prv\u00fd riadok). Over\u00edme, \u010di po rozbalen\u00ed z\u00edskame rovnak\u00fa \u0161trukt\u00faru prie\u010dinkov so s\u00fabormi (druh\u00fd a tret\u00ed riadok):<\/p>\n\n\n\n
tar xf ~\/archiv.tar --one-top-level=archiv-tar<\/pre>\n\n\n\n
du ~\/archiv<\/pre>\n\n\n\n
du ~\/archiv-tar<\/pre>\n\n\n\n
archiv<\/code> sme zistili, \u017ee prie\u010dinky
archiv<\/code> a
archiv-tar<\/code> s\u00fa rovnak\u00e9 \u0161trukt\u00farou prie\u010dinkov so s\u00fabormi, a tie\u017e s\u00fa identick\u00e9 ve\u013ekos\u0165ou. Cel\u00fd archiva\u010dn\u00fd proces (vytvorenie, zobrazenie obsahu a rozbalenie) teda prebehol spr\u00e1vne.<\/p>\n\n\n\n
Komprimujeme pomocou n\u00e1stroja GNU TAR<\/h2>\n\n\n\n
tar cfz ~\/archiv.tar.gz ~\/archiv<\/pre>\n\n\n\n
tar cfj ~\/archiv.tar.bz2 ~\/archiv<\/pre>\n\n\n\n
tar cfJ ~\/archiv.tar.xz ~\/archiv<\/pre>\n\n\n\n
du -s ~\/archiv.tar && du -s ~\/archiv.tar.bz2 && du -s ~\/archiv.tar.gz && du -s ~\/archiv.tar.xz<\/pre>\n\n\n\n
archiv.tar<\/code>) m\u00e1 najv\u00e4\u010d\u0161iu ve\u013ekos\u0165. Komprima\u010dn\u00e9 met\u00f3dy arch\u00edv zmen\u0161ili, pri\u010dom najmenej \u00faspe\u0161n\u00e1 bola met\u00f3da bzip2 (archiv.tar.bz2), lep\u0161ie to zvl\u00e1dla met\u00f3da gzip (
archiv.tar.gz<\/code>) a komprima\u010dn\u00fdm v\u00ed\u0165azom sa stala met\u00f3da xz (
archiv.tar.xz<\/code>). Okrem u\u0161etrenej ve\u013ekos\u0165 treba bra\u0165 do \u00favahy aj \u010das potrebn\u00fd na komprim\u00e1ciu. Spravidla viac u\u0161etren\u00e9ho miesta znamen\u00e1 aj viac \u010dasu, ktor\u00fd je potrebn\u00fd na vytvorenie komprimovan\u00e9ho arch\u00edvu.<\/p>\n\n\n\n
archiv.tar.gz<\/code> skr\u00e1ti\u0165 na
archiv.taz<\/code> alebo
archiv.tgz<\/code>. V pr\u00edpade
archiv.tar.bz2<\/code> u\u0161etr\u00edme znaky kr\u00e1tkymi formami
archiv.tb2<\/code>,
archiv.tbz<\/code>,
archiv.tbz2<\/code> aleob
archiv.tz2<\/code>. No a
archiv.tar.xz<\/code> zase zjednodu\u0161\u00edme na
archiv.txz<\/code>.<\/p>\n\n\n\n
tar tfz ~\/archiv.tar.gz<\/pre>\n\n\n\n
tar tfj ~\/archiv.tar.bz2<\/pre>\n\n\n\n
tar tfJ ~\/archiv.tar.xz<\/pre>\n\n\n\n
tar xf ~\/archiv.tar.gz --one-top-level=archiv-gzip<\/pre>\n\n\n\n
tar xf ~\/archiv.tar.bz2 --one-top-level=archiv-bzip2<\/pre>\n\n\n\n
tar xf ~\/archiv.tar.xz --one-top-level=archiv-xz<\/pre>\n\n\n\n
Komprimujeme pomocou n\u00e1strojov ZIP, RAR a 7-Zip<\/h2>\n\n\n\n
sudo apt install zip rar p7zip-full<\/pre>\n\n\n\n
Do you want to continue? [Y\/n]<\/em><\/pre>\n\n\n\n
y<\/code> ak chceme za\u010da\u0165 aktualiza\u010dn\u00fd proces alebo kl\u00e1ves
n<\/code>, ak aktualizova\u0165 nechceme. N\u00e1sledne stla\u010d\u00edme kl\u00e1ves
Enter<\/code>.<\/p>\n\n\n\n
zip -r ~\/archiv.zip ~\/archiv<\/pre>\n\n\n\n
rar a ~\/archiv.rar ~\/archiv<\/pre>\n\n\n\n
7z a ~\/archiv.7z ~\/archiv<\/pre>\n\n\n\n
unzip -l ~\/archiv.zip<\/pre>\n\n\n\n
rar l ~\/archiv.rar<\/pre>\n\n\n\n
7z l ~\/archiv.7z<\/pre>\n\n\n\n
du -s ~\/archiv.7z && du -s ~\/archiv.rar && du -s ~\/archiv.zip<\/pre>\n\n\n\n
unzip ~\/archiv.zip -d ~\/archiv-zip<\/pre>\n\n\n\n
rar x ~\/archiv.rar ~\/archiv-rar\/<\/pre>\n\n\n\n
7z x ~\/archiv.7z -oarchiv-7z<\/pre>\n\n\n\n
Zhrnutie<\/h2>\n\n\n\n