Fájlok tömörítése és kicsomagolása kátrány használatával Linux alatt – CloudSavvy IT

Avatar Gadam | 2020.12.07. 25 Views 0 Likes 0 Ratings

25 Views 0 Ratings Rate it

Shutterstock / iunewind

A Tar több, mint egy archiváló segédprogram: a tar néhány remek beépített funkcióval rendelkezik, amelyek lehetővé teszik a fájlok tömörítését és kicsomagolását, ugyanakkor archiválásukkal. Tudjon meg mindent erről és ebben a cikkben!

Mi a kátrány és hogyan telepítsem?

Mint a kátrány kézikönyv (amely beírásával érhető el man tar telepítése után) a tar archiváló segédprogram. Számos funkciót támogat, beleértve a fájlok menet közbeni tömörítését és kicsomagolását archiváláskor. Kezdjük a telepítéssel kátrány:

Üzembe helyezni kátrány a Debian / Apt alapú Linux disztribúción (például az Ubuntu és a Mint) hajtsa végre a következő parancsot a terminálján:

sudo apt install tar

Üzembe helyezni kátrány RedHat / Yum alapú Linux disztribúción (például az RHEL, a Centos és a Fedora) hajtsa végre a következő parancsot a terminálján:

sudo yum install tar

Ezután létrehozunk néhány minta adatot:

mkdir test; cd test
touch a b c d e f 
echo 1 > a; echo 5 > e; echo '22222222222222222222' > b

Mintaadatok beállítása a tömörítéshez

Itt létrehoztunk egy könyvtár tesztet, és hat üres fájlt hoztunk létre benne a touch parancs. Néhány fájlt is felvettünk a fájlokba a, e, és b, bár nevezetesen fájl b ismétlődő adatokkal rendelkezik, amelyek jól tömörülnek.

Ha többet szeretne megtudni a tömörítés működéséről, akkor fizetnie kell a mi oldalunkra Hogyan működik a fájltömörítés? cikk.

Tömörítetlen archívum létrehozása

Egyszerű, tömörítetlen tar-archívum létrehozása

tar -hcf all_files.tar *
ls -l | grep -v total | awk '{print $5"tbytes for: "$9}' | sort -n

Itt létrehoztunk egy tömörítetlen archívumot a tar -hcf all_files.tar * parancs. Vessünk egy pillantást a parancsban használt opciókra.

Először is -h amire ebben a konkrét esetben nincs szükség, de nagyon ajánlom, hogy mindig vegye fel a tar parancsokat. Ez az opció a dereferencia, amely eltéríti (vagy követi) a szimpla linkeket, archiválja és lerakja az általuk mutatott fájlokat.

Ezután megvan a -c és -f lehetőségek. Ne feledje, hogy csak a - ban ben -h, azaz más megadása helyett -, egyszerűen felcímkézzük őket a többi gyorsírási lehetőségre. Gyors és könnyű.

Az -c opció áll hozzon létre egy új archívumot. Vegye figyelembe, hogy alapértelmezés szerint a könyvtárakat rekurzív módon archiválják, hacsak nem használnak –no-rekurzió opciót. Az -f opcióval megadhatjuk az archívum nevét. Így az opciós láncunkban utoljára kell lennie (mivel ehhez opcióra van szükség), így közvetlenül mögé vehetjük az archív fájl nevét. Használata tar -fch test.tar * nem fog működni:

Az opciót igénylő gyorsírási opciók nem helyezhetők elöl

A kátrány keletkezése után módosítottat használunk ls kimenet, amely egyértelműen megmutatja a fájlonkénti bájtok számát. Mint látható, a tar fájl sokkal nagyobb, mint az összes fájlunk együttvéve. A fájlokat egyszerűen archiválják, és néhány általános költséget tartalmaz a kátrány hozzáadásra kerül.

Érdekes mellékmeghatározásként azt is láthatjuk, hogy milyen típusú fájlok működtek, egyszerűen a file parancs a parancssorban:

file c
file b
file all_files.tar

A fájl használata a fájltípus megtekintéséhez

Tömörítetlen archívum létrehozása

Nagyon gyakori tömörítési algoritmus a GZIP. Adjuk hozzá az opciót ugyanahhoz (-z) a rövidített parancssori opcióinkhoz, és nézze meg, hogyan befolyásolja ez a fájl méretét:

tar -zhcf all_files.tar.gz [a-f]
ls -l | grep -v total | awk '{print $5"tbytes for: "$9}' | sort -n

A tömörített és a tömörítetlen archívumok méretét nézve

Ezúttal egy reguláris kifejezést adtunk meg, amely csak a névvel rendelkező fájlokat használja a nak nek f, megakadályozva a tar parancsot a all_files.tar fájl az új fájlban all_files.tar.gz reszelő!

Lát Hogyan használja valójában a Regexet? és Szöveg módosítása a reguláris kifejezések használatával sed ha szeretne többet megtudni a reguláris kifejezésekről.

Bele is foglaltuk a -z opció, amely a GZIP tömörítést használja az eredmény tömörítésére .tar fájlt, miután az adatok kiürítése befejeződött. Nagyon jó látni, hogy egy 186 bájtos fájllal rendelkezünk, amely azt mondja nekünk, hogy – ebben az esetben – a tar körülbelül 10Kb fejléc / rezsi nagyon jól tömöríthető.

Az archívum teljes mérete 7,44-szer nagyobb, mint a teljes fájlméret, de ez keveset számít, mivel ez a kitalált példa nem reprezentatív a nagy fájlok tömörítésénél, ahol veszteségek helyett szinte mindig nyereség látható, hacsak az adatokat nem előzetesen tömörítették vagy olyan formátumú, hogy a különféle algoritmusok segítségével nem lehet könnyen sűríteni. Ennek ellenére az egyik algoritmus (például a GZIP) jobb lehet, mint egy másik (például a BZIP2), és fordítva, a különböző adatkészletekhez.

Több bájt megszerzése magas szintű tömörítéssel

Csinálhatjuk-e a fájlt még kisebbre? Igen. A GZIP maximális tömörítési beállítását a -I opció tar amely lehetővé teszi, hogy meghatározzunk egy tömörítési programot (a stackoverflow felhasználói ötletember42):

tar -I 'gzip -9' -hcf all_files.tar.gz [a-f]
ls -l | grep -v total | awk '{print $5"tbytes for: "$9}' | sort -n

Az -I opcióval tar-hoz megadhat egy tömörítési programot

Itt adtuk meg -I 'gzip -9' mint tömörítési programot használni, és elvetettük a -z opció (mivel most egy speciális egyedi programot határozunk meg, amelyet használni kell a beépített tar GZIP konfiguráció használata helyett). Az eredmény az, hogy egy jobb (de általában lassabb) tömörítési kísérlet eredményeként 12 bájttal kevesebbet (szinten -9) a GZIP.

Általánosságban elmondható, hogy minél gyorsabb a tömörítés (a tömörítési kísérletek alacsonyabb szintje, azaz -1), annál nagyobb a fájlméret. És minél lassabb a tömörítés (magasabb szintű tömörítési kísérletek, azaz -9), annál kisebb a fájl. Beállíthatja saját preferenciáját a tömörítési szint megváltoztatásával -1 (gyorsan) -9 (lassú)

Egyéb tömörítési programok

Két másik általános tömörítési algoritmus létezik, amelyeket megvizsgálhatunk és tesztelhetünk (a különböző algoritmus-opciók eltérő méretezési eredményeket adnak, és további tömörítési lehetőségek is lehetnek). bzip2, amelyet a -j opció tar, és XZ amely felhasználható a -J választási lehetőség.

Alternatív megoldásként használhatja a -I parancs a maximális tömörítési lehetőségek beállításához a bzip2 (-9):

bzip -9 tömörítési program példa

És -9e mert xz:

xz -9e tömörítési program példa

Mint látható, az eredmények ebben az esetben kevésbé jók, mint a kissé szokásos GZIP algoritmus használatával. Mégis, a bzip2 és xz az algoritmusok javulást mutathatnak más adathalmazokkal szemben.

Fájl kibontása

A fájlok kicsomagolása rendkívül egyszerű, függetlenül attól, hogy milyen eredeti módszerrel tömörítették, és feltéve, hogy ilyen tömörítési algoritmus van a számítógépén. Például, ha az eredeti tömörítési algoritmus bzip2 volt (a jelzéssel .bz2 a tar fájlnév kiterjesztése), akkor meg kell tenni sudo apt install bzip2 (vagy sudo yum install bzip2) a célszámítógépen, amelynek célja a fájl kibontása.

rm a b c d e f
tar -xf all_files.tar.gz
ls

Tömörít (vagy tömörítetlen) kátrányarchívum dekompressziója

Egyszerűen megadjuk -x nak nek kiterjed vagy kicsomagoljuk a mi all_files.tar.gz fájlt, és ismét jelezze a fájlnevet a -f gyorsírás, mint korábban.

A fájlok tömörítése sok helyet takaríthat meg a tárolóeszközökön, és ismeri a használat módját tar a rendelkezésre álló tömörítési lehetőségekkel együtt segít abban. Miután az archívumot újra ki kell nyerni, ezt könnyű megtenni, feltéve, hogy a megfelelő dekompressziós szoftver elérhető az archívumból az adatok kicsomagolásához vagy kivonásához használt számítógépen. Élvezd!


Source link


25 Views 0 Ratings Rate it