[[oktatas:linux|< Linux]] ====== Tömörítés ====== * **Szerző:** Sallai András * Copyright (c) 2018, Sallai András * Szerkesztve: 2018, 2019 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== Archiválás ===== Archiválás az esetünkben annyit jelent, hogy könyvtárakat, fájlokat egyetlen állományba rendezzük. Néhány tömörítő program ezt automatikusan megteszi. Más tömörítő programok, feltételezik, hogy a már egy archivált állományt szeretnénk tömöríteni. ==== tar ==== Becsomagolás: tar -cf adat.tar adat tar --create --file adat.tar adat Kicsomagolás: tar -xf adat.tar tar --extract --file adat.tar tar --get --file adat.tar Tartalom megtekintése: tar -t adat.tar tar --list adat.tar Fájl csatolása az archív fájl végéhez: tar -r -f adat.tar ujfajl Fájl törlése az archívból: tar --delete -f adat.tar torlendofajl A tar archívhoz egy másik tar archívot fűzünk: tar -A -f adat.tar masik.tar ==== shar ==== Telepítés apt install sharutils Archiváló program. A csomag telepítésével a következő parancsok lesznek elérhetők: * shar * unshar * uudecode * uuencode Archív készítés: shar dir1 > adat.shar Kicsomagolás: unshar adat.shar Néhány kapcsoló: -j, --bzip2 -z, --gzip -Z, --compress -o prefix, --output-prefix=prefix ===== Tömörítés ===== Az állományokat veszteségmentesen tömöríteni szoktuk a kisebb helyfoglalás érdekében. Erre a célra különféle algoritmusok alakultak ki az évek során. Ilyenek: * LZW * LZMA * LZX * LZ77 ===== arc ===== Telepítés: apt install arc Archív készítése: arc a adat.arc adat1 adat2 adat3 adat4 Kicsomagolás: arc x adat.arc ===== compress ===== A compress parancs az ncompress csomag része és LZX algoritmust használ. Nem leghatékonyabb algoritmus, de a korai Unix rendszerek ezt használták. Telepítés: apt install ncompress Használata: mkdir dir1 echo 01234567890123456789012345689 > gy/a.txt tar -cf gy.tar gy compress gy.tar Az eredmény egy .Z kiterjesztésű fájl: * gy.tar.Z Nézzük meg a fájl méretét: $ ls -l Kicsomagolás: uncompress.real gy.tar.Z ===== zip ===== # apt install zip Tar fájl tömörítés: zip gy.tar.zip gy.tar Txt fájl tömörítés: zip gy.zip gy.txt Egy könyvtár tömörítése: zip -r dir1.zip dir1 Hozzáadás: zip -g gy.zip gy2.txt Fájl törlése: zip -d gy.zip gy2.txt Tesztelés: zip -T gy.zip Tartalom listázása: unzip -l gy.zip Tömörítési szint -# * legkisebb: -1 * legnagyobb: -9 * alapértelmezett: -6 Példa: zip -9 Kicsomagolás: unzip gy.zip Használhatók még: 7z x gy.zip Igaz grafikus program, de lehet parancssorban is használni: ark -ab gy.zip ===== arj ===== # apt install arj Tar fájl tömörítése: $ arj a gy.tar.arj gy.tar Archiválás és tömörítés: $ arj a gy.arj *.txt Kicsomagolás: $ arj e gy.arj Tartalom megjelenítése: $ arj l gy.arj ===== rar ===== Az /etc/apt/sources.list fájlban fel kell venni a non-free ágat, majd mehet a telepítés: # apt install rar $ rar a gy.tar.rar gy.tar * kiterjesztés: rar $ rar a gy.rar *.txt $ rar a gy.rar adat[1-3].txt Kicsomagolás: $ rar x gy.rar Tartalom megtekintése: $ rar l gy.rar Fájl törlése az archívumból: $ rar d gy.rar gy1.txt Tesztelés: $ rar t gy.rar Egy fájl hozzáadása: $ rar a gy.rar gy1.txt ===== p7zip ===== # apt install p7zip $ p7zip gy.tar * kiterjesztés: .7z Kicsomagolás: $ p7zip -d gy.tar.7z ===== 7za ===== Magas tömörítési aránnyal dolgozó tömörítő. Telepítés: # apt install p7zip-full * kiterjesztés: 7z Tömörítés: $ 7za a gy gy[1-3].txt Kibontás: $ 7za e gy.7z $ p7zip -d gy.7z Tartalom: $ 7za l gy.7z Egy fájl kiszedése és törlése az archívból: $ 7za d gy.7z gy1.txt ===== gzip ===== * kiterjesztés: .gz Becsomagolás: $ gzip gy.txt * gzip gy.tar Kicsomagolás: $ gzip -d gy.tar.gz $ gunzip gy.tar.gz A gunzip képes kicsomagolni a gzip, zip, compress és a pack tömörítő programok csomagjait. ===== xz ===== * kiterjesztés: .xz Tömörítés: $ xz gy.tar Kibontás: $ xz -d gy.tar.xz Információ egy archívról: $ xz -l gy.tar.xz Tömörítési szint: * minimum: -0 * maximum: -9 * alapértelmezett: -6 $ zx -9 gy.tar ===== lzip ===== # apt install lzip * kiterjesztés: lz Tömörítés: $ lzip gy.tar Kicsomagolás: $ lzip -d gy.tar.lz Tömörítési szint: * minimum: -0 * maximum: -9 * alapértelmezett: 6 * --fast -0 * --best -9 * lzip -9 gy.tar ===== bzip2 ===== # apt install bzip2 * kiterjesztés: bz2 Tömörítés: $ bzip2 gy.tar Kicsomagolás: $ bzip2 -d gy.tar.bz2 ===== ACE ===== ACE tömörítő nem áll rendelkezésre, csak kicsomagoló. apt install unace Esetleg non-free: apt install unace-nonfree ===== lz4 ===== apt install liblz4-tool Parancsok: * lz4, unlz4, lz4cat Tömörítés: $ lz4 data.tar Kicsomagolás: $ lz4 -d gy.tar.lz4 $ unlz4 gy.tar.lz4 Az lz4 kicsomagolása esetén megmarad az eredeti .lz4 archívum. ===== lhasa ===== apt install lhasa Csak kicsomagolásra alkalmas. Kicsomagolás: lha -e gy.lzh Tartalom: lha -l gy.lzh ===== pigz ===== A pigz több szálat használ a tömörítéshez, kihasználva a processzorokat és processzor magokat. A bemenetet 128 KB-s részekre bontja, majd párhuzamosan tömöríti azokat. A tömörítési formátum gzip, zlib vagy egyszerű zip. Több mag vagy processzor esetén a gzip helyett szoktuk használni. apt install pigz Tömörítés: pigz gy.tar Kicsomagolás: pigz -d gy.tar.gz unpigz gy.tar.gz pigz --decompress gy.tar.gz pigz --uncompress gy.tar.gz ===== zstd ===== apt install zstd ===== brotli ===== apt install brotli tar -cf valami.tar /valahol/valami brotli valami.tar Az eredmény: * valami.tar.br A brotlival tömörített fájlok .br kiterjesztést kapnak. ===== Csővezeték használata ===== Becsomagolás: tar -cO pro[1-3] | gzip -c > pro.tar.gz * tar * -c archívum létrehozása * -O a kimenet a /dev/stdout * gzip * -c a kimenet a /dev/stdout Kicsomagolás: gzip -dc pro.tar.gz | tar -xf - * gzip parancs: * A -d kapcsoló megmondja, hogy kicsomagolunk. * A -c kapcsoló megmondja, hogy az alapértelmezett kimenetre ír. * tar parancs: * A -x megmondja, hogy kicsomagolunk. * A -f a kicsomagolandó fájl következik: * A kötőjel, azt jelenti az adatok a /dev/stdin fájlból jönnek. A gunzip paranccsal: gunzip -c pro.tar.gz | tar -xf - ===== zcat ===== A zcat segítségével a tömörített fájlok kicsomagolhatók az alapértelmezett kimenetre, miközben meghagyja az eredeti fájlt. Legyen a példa kedvéért egy adat.tar.gz fájl. zcat adat.tar.gz > adat.tar zcat adat.tar.gz | tar -xf - Az eredeti fájl megmarad. Vagy legyen .tar.gz kiterjesztés helyett .tgz. zcat adat.tgz | tar -xf - Legyen a következő példa kedvéért egy szöveges fájl (.txt), amelyet gzippel tömörítettünk: gzip adat.txt Eredmény: adat.txt.gz A tartalmát a képernyőre írathatjuk: zcat adat.txt.gz ===== A tar és a tömörítés ===== A tar parancs csak archiválni tud, mivel nem tartalmaz tömörítő algoritmust; de képes meghívni tömörítő programokat. Archiválás és tömörítés: tar -czf adat.tar.gz adat Bőbeszédű változat: tar -cvzf adat.tar.gz adat Archiválás és tömörítés .tgz kiterjesztéssel: tar -czf adat.tgz adat A tömörített archívum kibontása: tar -xzf adat.tar.gz Bőbeszédű forma: tar -xvzf adat.tar.gz Hosszú kapcsolókkal: tar --create --gzip --file adat.tar.gz adat Kicsomagolás hosszú kapcsolókkal: tar --extract --gunzip --file adat.tar.gz A bzip2 tömörítő használata: tar -j -c -f adat.tar.bz2 adat tar --bzip2 --create --file adat.tar.bz2 adat Az xz tömörítő használata: tar -J -c -f adat.tar.bz2 adat tar --xz --create --file adat.tar.xz adat A compress tömörítő használata: tar -Z -c -f adat.tar.Z adat tar --compress --create --file adat.tar.Z adat Külső program használata, ha van -d kapcsolója a kicsomagoláshoz: tar --use-compress-program xz -cf adat.tar.xz adat tar --use-compress-program xz -xf adat.tar.xz ===== Önkicsomagoló archív ===== ==== makeself ==== Telepítés: apt install makeself ==== unzipsfx ==== Telepítés: apt install unzip Parancs: unzipsfx Az önkicsomagoló állomány mindig a már tömörített állományból készíthető. A tömörítendő állományokat célszerű egy könyvtárba tenni. zip -r vmi.zip konyvatVagyAllomany | cat /usr/bin/unzipsfx vmi.zip > vmi.sfx A zip esetén a -r rekurzívan az alkönyvtárakra is vonatkozik. vmi.zip esetén a kiterjesztést nem kötelező megadni. Az unzipsfx a Debian GNU/Linux 3.0-ban a uzip csomagban van. ==== shar ==== A shar parancs a sharutils csomag része. Önkicsomagoló archív létrehozására: shar -z állományok* > archinnev.shar A -z kapcsoló a gzip tömörítésre ad utasítást.