
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
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
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:
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
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
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
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
):
És -9e
mert xz
:
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
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!