Mi az előnye a tar fájlformátum használatának ma?
A tar-archiválási formátum számítási években egy valóságos metálzsálem, de még ma is nehéz használatban van. Mi teszi a tar-formát olyan hasznosnak, ameddig a kezdete óta van?
A mai Kérdések és válaszok munkamenet a Jóvagyon - a Stack Exchange alosztályának, a közösség által vezérelt Q&A webhelyek csoportjának köszönhetően..
A kérdés
A MarcusJ SuperUser olvasó kíváncsi a tar formátumra, és miért használjuk azt még az összes év után:
Tudom, hogy a nap folyamán a szalagos archívumokhoz készült kátrányt készítettek, de ma már archív fájlformátumok vannak, amelyek mind a fájlokat összesítik, mind a tömörítést ugyanabban a logikai fájlformátumban hajtják végre.
Kérdések:
- Van-e teljesítménycsökkentés a gzipbe vagy bzip2-be burkolt kátrány-aggregálási / tömörítési / dekompressziós fázisok során, összehasonlítva ugyanazon adatstruktúrában az aggregációt és tömörítést végző fájlformátummal? Tegyük fel, hogy az összehasonlítható kompresszor futási ideje azonos (pl. Gzip és Deflate hasonló).
- Vannak-e olyan tar fájlformátumok, amelyek más fájlformátumok, például .7z és .zip nem rendelkeznek?
- Mivel a tar egy ilyen régi fájlformátum, és újabb fájlformátumok léteznek ma, miért van még a tar (akár gzipbe, bzip2-be vagy akár az új xz-be is kapszulázva) még ma is széles körben használt GNU / Linux, Android, BSD és más ilyen UNIX-on operációs rendszerek, fájlátvitel, programforrás és bináris letöltések, és néha csomagkezelő formátumban is?
Ez egy teljesen ésszerű kérdés; annyira megváltozott a számítástechnikai világban az elmúlt harminc évben, de még mindig a tar formátumot használjuk. Mi a sztori?
A válasz
Az Allquixotic SuperUser közreműködője betekintést nyújt a tar formátum hosszú élettartamába és funkcionalitásába:
1. rész: Teljesítmény
Itt két külön munkafolyamat és az általuk végzett munka összehasonlítása.
Van egy fájl a lemezen
blah.tar.gz
azaz 1 GB gzip-tömörített adat, amely tömörítés nélkül 2 GB-ot foglal el (így 50% -os tömörítési arány).Az, ahogyan ezt létrehozná, ha külön-külön archiválná és tömörítené, az lenne:
tar cf blah.tar fájlok…
Ez azt eredményezné, hogy
blah.tar
ami a. \ tfájlok ...
tömörítetlen formában.Akkor tennéd
gzip blah.tar
Ez olvassa el a tartalmát
blah.tar
lemezről, tömörítse őket a gzip tömörítési algoritmuson keresztül, írja be a tartalmatblah.tar.gz
, majd törölje (törölje) a fájltblah.tar
.Most dekompressáljuk!
1. út
Neked van
blah.tar.gz
, így vagy úgy.Úgy dönt, hogy futtatja:
gunzip blah.tar.gz
Ez lesz
- OLVASSA el az 1 GB-os tömörített adatok tartalmát
blah.tar.gz
.- PROCESS a tömörített adatokat a
gzip
dekompresszor a memóriában.- Mivel a memóriapuffer „blokk” értéket tölt be, írja le a tömörítetlen adatokat a fájlba
blah.tar
a lemezen, és ismételje meg mindaddig, amíg az összes tömörített adatot le nem olvassa.- Kapcsolja ki (törölje) a fájlt
blah.tar.gz
.Most már van
blah.tar
lemezen, amely tömörítetlen, de benne egy vagy több fájlt tartalmaz, nagyon alacsony adatstruktúrával. A fájl mérete valószínűleg egy pár bájt nagyobb, mint az összes fájladat összege.Te futsz:
tar xvf blah.tar
Ez lesz
- OLVASSA el a 2 GB-os tömörítetlen adat tartalmát
blah.tar
és akátrány
fájlformátum-struktúrák, beleértve a fájljogosultságokról, a fájlnevekről, a könyvtárakról stb.- Írjon lemezre a 2 GB-os adatot és a metaadatokat. Ez magában foglalja a következőket: az adatszerkezet / metaadat információk fordítása az új fájlok és könyvtárak létrehozásához a lemezen, illetve a meglévő fájlok és könyvtárak új adattartalmú átírása.
Az összes adat OLVAS ebben a folyamatban a lemezről 1 GB volt (gunzip esetén) + 2 GB (tar) esetén = 3 GB.
Az összes adat ÍRT ebben a folyamatban a lemezre 2 GB volt (a gunzip esetében) + 2 GB (a tar esetében) + néhány bájt a metaadatokhoz = kb. 4 GB.
2. út
Neked van
blah.tar.gz
, így vagy úgy.Úgy dönt, hogy futtatja:
tar xvzf blah.tar.gz
Ez lesz
- OLVASSA el az 1 GB-os tömörített adatok tartalmát
blah.tar.gz
, egy blokk egyszerre, a memóriába.- PROCESS a tömörített adatokat a
gzip
dekompresszor a memóriában.- Ahogy a memóriapuffer kitölti, akkor ez megtörténik pipa az adatokat, a memóriában, a
kátrány
fájlformátum-értelmező, amely elolvassa a metaadatokkal kapcsolatos információkat stb. és a tömörítetlen fájladatokat.- Mivel a memóriapuffer kitölti a
kátrány
fájlelemző, akkor írja le a tömörítetlen adatokat lemezre, fájlok és könyvtárak létrehozásával és a tömörítetlen tartalommal való kitöltésével.Az összes adat OLVAS a lemezről ebben a folyamatban 1 GB tömörített adat, időszak.
Az összes adat ÍRT a lemezre ebben a folyamatban 2 GB tömörítetlen adat + néhány bájt volt a metaadatokhoz = kb. 2 GB.
Ha észreveszi, az I / O lemez mennyisége 2. út jelentése azonos az I / O lemezre, amelyet a
Postai irányítószám
vagy7-Zip
programokat, beállítva a kompressziós arány bármilyen különbségét.És ha a tömörítési arány az Ön problémája, használja a
xz
kompresszort kapszuláznikátrány
, és LZMA2'ed TAR archívuma van, ami ugyanolyan hatékony, mint a legfejlettebb algoritmus7-Zip
:-)2. rész: Jellemzők
kátrány
tárolja a UNIX jogosultságokat a fájl metaadatain belül, és nagyon jól ismert és tesztelt egy könyvtár sikeres csomagolásához mindenféle különböző jogosultsággal, szimbolikus hivatkozással stb. Több, mint néhány eset, amikor lehet, hogy egy csomó fájlt be kell fektetni egyetlen fájl vagy adatfolyam, de nem feltétlenül tömöríteni (bár a tömörítés hasznos és gyakran használt).3. rész: Kompatibilitás
Sok eszközt forrás vagy bináris formában osztanak meg .tar.gz vagy .tar.bz2 formátumban, mert ez a „legalacsonyabb közös nevező” fájlformátum: a legtöbb Windows-felhasználóhoz hasonlóan hozzáférhető a .zip vagy .rar dekompresszorok, a legtöbb Linux telepítés, még a legalapvetőbb is, legalább a kátrány és a pisztolyokhoz való hozzáférés, függetlenül attól, hogy milyen régi vagy le van állítva. Még az Android cégek is hozzáférhetnek ezekhez az eszközökhöz.
A modern disztribúciókat futtató közönségeket célzó új projektek nagyon jól eloszthatók egy modern formátumban, például .tar.xz-ben (az Xz (LZMA) tömörítési formátum használatával, amely jobban tömöríti a gzipet vagy a bzip2-t), vagy .7z, ami hasonló a a Zip- vagy Rar-fájlformátumokban, hogy egyaránt tömöríti és meghatározza az elrendezést több fájl egyetlen fájlba történő beágyazására.
Nem látja, hogy a .7z-t gyakrabban használják ugyanezen okból, hogy a zene az online letöltési áruházakból nem kerül értékesítésre új formátumban, például az Opus-on vagy a WebMobban. Kompatibilitás az ősi vagy nagyon alapvető rendszereket futtató emberekkel.
Van valami, amit hozzá kell adni a magyarázathoz? Kikapcsolja a megjegyzéseket. Szeretne további válaszokat olvasni más tech-savvy Stack Exchange felhasználóktól? Nézze meg a teljes beszélgetés szálát itt.