Az xz tömörítő program

Linux kezdő
Linux kezdő

Már több tömörítő programról volt szó, így ma is egyet veszünk górcső alá. Az elmúlt napokban kaptam egypár tömörítvényt, ami xz tömörítő programmal lett bezippelve. Bár nem egy új módszer, de én még nem használtam, így járjuk körbe ezt a kis programot is. Azaz ma az xz tömörítő programmal foglalkozunk. Ami parancssoros, de sok grafikus fájlkezelő (a spacefm mindenképp) ismeri. Így akár CLI, akár GUI környezettben használható lesz.

Miért érdemes a xz tömörítő programmal foglalkozni?

Jogos a kérdés, hiszen a megszokott, vagy az elterjedtebb zippelőket leváltani nem biztos, hogy egyszerű. Megszoktuk és nem szívesen vállunk meg tőlük.
Két fontos jellemzője van az xz tömörítő programnak: elvileg nagyon erősen tömörít és beállítható a párhuzamos CPU mag használata.

Vegyük végig a lehetőségeket.

Betömörítés és a kitömörítés egyszerű

xz fájlneve

Ez alapesetben megegyezik a -k kapcsolóval, de így simán csak a tömörítendő fájl nevének a megadásával is megoldható. A kapott fájl neve: fájlneve.xz lesz.

A kicsomagolás szintén egyszerű, de két módja is van:

xz -d fájlneve.xz

A másik megoldás a

unxz fájlneve.xz

Ami szintén nagyon egyszerűen megjegyezhető. Én a másodikat kedvelem, bár semmi különbség nincs a kettő közt.
Egyes tömörítő programok számomra fura megoldást alkalmaznak, mert törlik az eredeti fájlt. Ami lehet logikus is, de jobban szeretném ha nem ez történne. Így a meglepetések elkerülése végett – ha azt szeretnéd, hogy az eredeti fájl a tömörítés után is megmaradjon – használd a -k opciót.
Bár nem valószínű, hogy ezt a „betömörítem és törlöm” lehetőséget használja a kedvenc fájlkezelőd, de próbáld ki. Biztos, ami biztos.

Magasabb tömörítési ráta elérése

Ahogy a legtöbb az xz tömörítő is képes a tömörítési arányt fokozni. Amit tudni kell: a kisebb fájlméret hosszabb időt vesz igénybe. Ez jellemzően nem gond.

Az xz tömörítő különböző tömörítési szintekkel rendelkezik, 0-tól 9-ig skálázva. Minél nagyobb a szám, annál nagyobb tömörítést és helymegtakarítást fogunk kapni, de a megnövekedett memória és a CPU használatának árán. A megfelelő tömörítési szint megtalálása a gép hardverétől és a tömörített fájl típusától függ. Egyes fájltípusok óriási előnyökkel járhatnak, mások pedig nem. A már tömörített formátumok, zene, videóanyag, sok esetben a disztribúciód csomagjai, appimage stb. fájloknál alig van különbség.
A legjobb tömörítési arány

xz -9 fájlneve

megadásával lesz. Igen, itt a -szám formátum, és nem kell kapcsoló hozzá. Az alap 6-os általában megfelelő lesz. A magasabb érték nem csak a be, hanem a kitömörítésnél is nagyobb erőforrás igényű. Bár a mai gépeknél nem gond, de jó ha tudod.

A gyorsaságot szabályozhatjuk a többmagos megoldással, így kihasználható a modern, többszálas processzor.

-T, --threads=SZÁM

Alapértelmezett az 1, ami hm… nem a legideálisabb. A 0 egy jó megoldás, hogy annyi szálat használjon, amennyi processzormag áll rendelkezésre. Itt fontos megjegyezni, hogy van egy memória használati korlát, ami megakadályozza, hogy elfoglalja az összes erőforrást. Ha ebbe ütközik a sokmagos működés, akkor érdemes ezt megemelni. A man xz sokkal több funkciót felsorol, mint én!

Bár az eddigiek is szép eredmény adnak, de létezik egy extrém mód is. Az -e azaz extrém kapcsolóval sokkal nagyobb gépterhelés mellett kissé fokozhatod a tömörítési arányt. Nagy változást nem tapasztaltam, minimális eltérések voltak, bár lehet, hogy más fájltípusoknál lehet nagyobb is.

Tipp: bár nagyon jó értés, ha 0,5%-kal kisebb lesz a fájl, de azért nem mindig ideális a dolog, mert a tömörítési idő sem utolsó, ha nagy anyagot tömörítünk.

A könyvtárak kezelése xz tömörítő programmal

Már több nagyon jó tömörítővel dolgoztunk, ami nem tudott alapból könyvtárakat kezelni. Akkor is, és most is a tar programot használjuk, hogy a könyvtárból egy csomagolt fájlt készítsünk. A tar kezeli a xz tömörítő programot, így egy lépésben megoldjuk:

tar cfJv archivum.tar.xz könyvtár/

A J opció adja meg a tar csomagolónak, hogy xz formátum a cél.

A kicsomagolása:

tar xJvf archivum.tar.xz

A fenti parancs sima, alapértékekkel tömörít, ami nem feltétlen jó. Ha a maximumot akarod, akkor egy kis trükközés kell. Környezeti változóban adhatjuk meg az értéket.

XZ_OPT=-9 tar cfJv archivum.tar.xz könyvtár/

Ha sokat tömörítesz az xz tömörítő programmal, és unod a sok gépelést, akkor használhatsz alias megoldást is.

Az xz tömörítő program sokat tud, én csak a két legfontosabbat vizsgáltam: ki- és betömörítést.

Pár teszt eredmény, összehasonlításra

A könyvtár, amit tömörítek 2,6Giga. A könyvtár vegyes, van kép, videó és szöveg fájl, de vannak benne arch csomagok is.

-rw-r–r– 1 laci users 1086882620 jan 4 11.40 9Mentes.tar.xz
-rw-r–r– 1 laci users 1100912349 jan 4 10.48 Mentes.tar.7z
-rw-r–r– 1 laci users 1101985388 jan 4 11.14 Mentes.tar.xz
-rw-r–r– 1 laci users 1133706504 jan 4 11.07 Mentes.tar.gz
-rw-r–r– 1 laci users 1133706645 jan 4 11.05 Mentes.tar.zip
-rw-r–r– 1 laci users 2604871680 jan 4 10.45 Mentes.tar

Ahogy látni a tar simán összecsomagolta, ez volt az alapfájl, amit tömörítettem. A gz/zip nem okozott meglepetést, minden gond nélkül a megszokott minőségben összenyomta, a p7zip és a sima, alapbeállítású xz közel egyforma eredményt hozott. A 9Mentes.tar.xz lett a legjobb, bár nem sokkal kisebb, de valamivel kisebb állománnyal. Ez a maximális -9 kapcsolóval futtatott xz tömörítő.

Amire szeretnék még kitérni, hogy bár a legtöbb fájlkezelő, vagy tömörítő program nagyon jó beállítású, ennek ellenére érdemes a beállításokat testre szabni, ha azokat használod folyamatosan. A spacefm tömörítő beállításai nagyon egyszerűek, csak át kell írni a beállítást és már életbe is lépnek.

Related Posts