[[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.