< Linux

Tömörítés

Szerző: Sallai András

Copyright © 2018, Sallai András

Szerkesztve: 2018, 2019

Licenc: 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.