Tartalomjegyzék
Tömörítés
- Szerző: Sallai András
- Copyright © 2018, Sallai András
- Szerkesztve: 2018, 2019, 2025
- 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
A tar a leggyakrabban használt archiváló program.
Becsomagolás:
tar -cf adat.tar adat
tar --create --file adat.tar adat
Kibontá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
- DEFLATE
- Huffman-kódolás
arc
LZW algoritmus. Későbbi változatok LZW 13 bites verziója, a 12 helyett.
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 rendszergazdaként:
apt install ncompress
Használata:
mkdir gy 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
A zip a DEFLATE algoritmust használja. A DEFALTE algoritmus az LZ77 és a Huffman keveréke.
Telepítés rendszergazdaként:
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
LZH algoritmust használ, ami az LZ77 és a dinamikus Huffman-kódolás kombinációja. A finomított szótárkezelés hatékonyabbá tette szemben a zip-pel.
Telepítés rendszergazdaként:
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
A LZSS (Lempel-Ziv-Storer-Szymanski) algoritmust használja, ami az LZ77 fejlettebb változata. E-mellett fejlett adattípus felismerőképessége tette hatékonnyá.
Az /etc/apt/sources.list fájlban fel kell venni a non-free ágat, majd mehet a telepítés:
Telepítés rendszergazdaként:
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
7za
Korábban LZMA algoritmust használta, mostanság LZMA2.
Magas tömörítési aránnyal dolgozó tömörítő.
Telepítés rendszergazdaként:
apt install 7zip
Régebben: 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
A DEFLATE algoritmust használja, de nem tud archiválni, csak tömöríteni.
- 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
LZMA2 algoritmust használja.
- 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
Az eredeti tiszta LZMA algoritmust használja.
Telepítés rendszergazdaként:
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
Szakít a hagyományos algoritmusokkal. Burrows-Wheeler transzformáció (BWT), Move-To-Front (MTF), Huffman-kódolás, használja.
Telepítés rendszergazdaként:
apt install bzip2
- kiterjesztés: bz2
Tömörítés:
bzip2 gy.tar
Kicsomagolás:
bzip2 -d gy.tar.bz2
ACE
Valamilyen LZ alapú tömörítő eljárás.
ACE tömörítő nem áll rendelkezésre, csak kicsomagoló.
apt install unace
Esetleg non-free:
apt install unace-nonfree
lz4
Az LZ4 algoritmust használja. Méret helyett a szuper nagy sebességre lett optimalizálva.
Telepítés rendszergazdaként:
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
LZH algoritmus: A LZSS és statikus vagy dinamikus Huffman-kódolás kombinálva.
Telepítés rendszergazdaként:
apt install lhasa
Csak kicsomagolásra alkalmas.
Kicsomagolás:
lha -e gy.lzh
Tartalom:
lha -l gy.lzh
pigz
A DEFLATE algoritmust használja.
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
LZ77, FSE(Finite State Entropy) és Huffman-kódolást használja. A zstd képes tanulni. A tanulás során létrehoz egy szótárfájlt.
apt install zstd
Tömörítés:
zstd gy.tar
Kapunk egy ilyet: gy.tar.zst
Kicsomagolás:
unzstd gy.tar.zst
brotli
Az LZ77 és a Huffman-kódolás egy extrém módon továbbfejlesztett változatát használja. Szöveges fájloknál ad jó tömörítési arányt.
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
A makeself alapvetően programok, scriptek becsomagolására lett kitalálva, de adatokat is tárolhatunk vele.
Legyen egy gy nevű könyvtár, amibe van egy a.txt állományunk.
gy/ `-a.txt
makeself <könyvtár> <fájlnév> <leírás> <program>
- könyvtár: A könyvtár, amit becsomagolunk.
- fájlnév: A készülő önkicsomagoló fájl neve.
- leírás: Egy rövid szöveg, ami leírás. Pl. „Saját adatok”
- program: A kicsomagolás után végrehajtandó program vagy script.
makeself dir1 adatcsomag.run "Saját adatok" true
A true csak egy kötelező paraméter, mivel valamit meg kell adni. A true parancs fut le a kicsomagolás után.
./adatcsomag.run --target valami
A parancs végrehajtásának tiltása. De true egyébként sem csinál semmit.
./adatcsomag.run --noexec --target valami
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.
