Mikä on Tar-tiedostomuodon käytön nykyinen etu?
Terva-arkistointimuoto on tietojenkäsittelyvuosina todellinen metuusala, mutta silti se on yhä kovassa käytössä. Mikä tekee tervan muodon niin hyödylliseksi kauan sen alkamisen jälkeen?
Nykypäivän Kysymys- ja vastaus -istunto tulee meille suotuisasti SuperUserin - Stack Exchange -alueen, yhteisöpohjaisen Q & A-sivustojen ryhmittymän - kautta..
Kysymys
SuperUser-lukija MarcusJ on utelias tar-muodossa ja miksi käytämme sitä vielä kaikkien näiden vuosien jälkeen:
Tiedän, että nauhojen arkistoja varten tehtiin tervaa päiväpäivänä, mutta nykyään meillä on arkistotiedostomuotoja, jotka yhdistävät tiedostoja ja suorittavat pakkauksen samassa loogisessa tiedostomuodossa.
kysymykset:
- Onko gzipiin tai bzip2: een kapseloitua tervaa, joka on aggregaatiota / puristusta / dekompressiota varten, suorituskyvyllisyyttä verrattaessa samaan tietorakenteeseen koottua ja pakattua tiedostomuotoa? Oletetaan, että vertailevan kompressorin käyntiaika on identtinen (esim. Gzip ja Deflate ovat samanlaisia).
- Ovatko tar-tiedostomuodon ominaisuuksia, joita muilla tiedostomuodoilla, kuten .7z ja .zip, ei ole?
- Koska terva on sellainen vanha tiedostomuoto, ja uudemmat tiedostomuodot ovat nykyään olemassa, miksi terva (kapseloitu gzipiin, bzip2: een tai jopa uuteen xz: hen) on yhä niin laajalti käytössä GNU / Linuxissa, Androidissa, BSD: ssä ja muissa sellaisissa käyttöjärjestelmä, tiedostojen siirto, ohjelmalähde ja binäärilataukset ja joskus jopa pakettienhallintaformaatti?
Se on täysin kohtuullinen kysymys; niin paljon on muuttunut tietojenkäsittelymaailmassa viimeisten kolmenkymmenen vuoden aikana, mutta käytämme edelleen tar-muotoa. Mikä on tarina?
Vastaus
SuperUserin avustaja Allquixotic tarjoaa jonkin verran tietoa tar-muodon pitkäikäisyydestä ja toimivuudesta:
Osa 1: Suorituskyky
Tässä on vertailu kahdesta erillisestä työnkulusta ja siitä, mitä he tekevät.
Levyllä on tiedosto
blah.tar.gz
joka on, esimerkiksi, 1 Gt gzip-pakattua dataa, joka puristamatta jää 2 Gt: aan (niin että pakkaussuhde on 50%).Tapa, jolla luot tämän, jos haluat tehdä arkistointia ja pakkaamista erikseen, olisi:
tar cf blah.tar-tiedostoja…
Tämä johtaisi
blah.tar
joka on pelkkä yhdistelmätiedostot…
pakkaamattomassa muodossa.Sitten tekisit
gzip blah.tar
Tämä lukisi sisällön
blah.tar
levyltä, pakkaa ne gzip-pakkausalgoritmin kautta, kirjoita sisältöblah.tar.gz
, sitten irrota (poista) tiedostoblah.tar
.Nyt, puretaan!
Way 1
Sinulla on
blah.tar.gz
, tavalla tai toisella.Päätät suorittaa:
gunzip blah.tar.gz
Tämä tulee
- LUE 1 Gt: n pakattujen tietojen sisältö
blah.tar.gz
.- PROCESS pakatut tiedot
gzip
dekompressori muistissa.- Koska muistipuskuri täyttää "lohkon" arvoa, KIRJOITTU pakkaamattomat tiedot tiedostoon
blah.tar
levyllä ja toista, kunnes kaikki pakatut tiedot luetaan.- Poista tiedosto (poistetaan)
blah.tar.gz
.Nyt sinulla on
blah.tar
levyllä, joka ei ole pakattu, mutta sisältää sen sisällä yhden tai useampia tiedostoja, joiden tietorakenne on hyvin pieni. Tiedoston koko on luultavasti pari tavua suurempi kuin kaikkien tiedostotietojen summa.Sinä juokset:
tar xvf blah.tar
Tämä tulee
- LUE 2 Gt: n pakkaamattomien tietojen sisältö
blah.tar
jaterva
tiedostomuodon tietorakenteet, mukaan lukien tiedot tiedostojen käyttöoikeuksista, tiedostonimistä, hakemistoista jne.- KIRJOITTAA levylle 2 Gt: n tiedot ja metatiedot. Tähän kuuluu: tietojen rakenteen / metatietojen tietojen kääntäminen uusien tiedostojen ja hakemistojen luomiseksi levylle, tai olemassa olevien tiedostojen ja hakemistojen uudelleenkirjoittaminen uudella tietosisällöllä.
Kokonaistiedot me LUKEA levyltä tässä prosessissa oli 1 Gt (gunzipille) + 2 Gt (terva) = 3 Gt.
Kokonaistiedot me KIRJOITTI levylle tässä prosessissa oli 2 Gt (gunzipille) + 2 Gt (terva) + muutama tavu metatiedoille = noin 4 Gt.
Way 2
Sinulla on
blah.tar.gz
, tavalla tai toisella.Päätät suorittaa:
tar xvzf blah.tar.gz
Tämä tulee
- LUE 1 Gt: n pakattujen tietojen sisältö
blah.tar.gz
, lohko kerrallaan muistiin.- PROCESS pakatut tiedot
gzip
dekompressori muistissa.- Kun muistipuskuri täyttää, se tulee putki tiedot, muistissa, kautta
terva
tiedostomuotoilija, joka lukee tiedot metatiedoista jne. ja pakkaamattomista tiedostoista.- Koska muistipuskuri täyttää
terva
tiedostojen jäsennin, se LATAA pakkaamattomat tiedot levylle luomalla tiedostoja ja hakemistoja ja täyttämällä ne pakkaamattomalla sisällöllä.Kokonaistiedot me LUKEA levyltä tässä prosessissa oli 1 Gt pakattuja tietoja, jakso.
Kokonaistiedot me KIRJOITTI levylle tässä prosessissa oli 2 Gt pakkaamattomia tietoja + muutama tavu metatiedoille = noin 2 Gt.
Jos huomaat, levyn I / O sisäänmeno Way 2 on identtinen levylle I / O suoritetaan, esimerkiksi,
Postinumero
tai7-Zip
ohjelmat, säätämällä pakkaussuhteen eroja.Ja jos pakkaussuhde on huolenaiheesi, käytä
xz
kompressori kapseloidaterva
, ja sinulla on LZMA2'ed TAR -arkisto, joka on yhtä tehokas kuin edistynein algoritmi7-Zip
:-)Osa 2: Ominaisuudet
terva
tallentaa UNIX-käyttöoikeudet tiedostojen metatietoihin, ja se on hyvin tunnettu ja testattu hakemiston onnistuneeksi paketoimiseksi kaikenlaisilla erilaisilla oikeuksilla, symbolisilla linkeillä jne. On enemmän kuin muutamia tapauksia, joissa saattaa olla tarpeen yhdistää joukko tiedostoja yksittäinen tiedosto tai stream, mutta ei välttämättä pakkaa sitä (vaikka pakkaus on hyödyllinen ja usein käytetty).Osa 3: Yhteensopivuus
Monet työkalut on jaettu lähde- tai binaarimuodossa .tar.gz tai .tar.bz2, koska se on "pienin yhteinen nimittäjä" -tiedostomuoto: aivan kuten useimmissa Windows-käyttäjissä on pääsy .zip- tai .rar-dekompressoreihin, useimmat Linux-asennukset, jopa kaikkein peruskielisimmällä, on pääsy ainakin tervaan ja gunzipiin, riippumatta siitä, kuinka vanha tai vanhentunut. Jopa Android firmwaresilla on pääsy näihin työkaluihin.
Uudet hankkeet, jotka kohdistavat nykyaikaisia jakeluita käyttäviä yleisöjä, voivat hyvin levittää nykyaikaisemmassa muodossa, kuten .tar.xz-muodossa (käyttämällä Xz (LZMA) -pakkausmuotoa, joka pakkaa paremmin kuin gzip tai bzip2), tai .7z, joka on samanlainen kuin Zip- tai Rar-tiedostomuodoissa, koska se sekä pakkaa että määrittelee asettelun useiden tiedostojen kapseloimiseksi yhteen tiedostoon.
Et näe .7z: tä useammin samasta syystä, että musiikkia ei myydä online-latausmyymälöissä täysin uusissa muodoissa, kuten Opuksessa tai WebM: ssä. Yhteensopivuus vanhojen tai hyvin perusjärjestelmien kanssa.
Onko jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta tech-savvy Stack Exchange -käyttäjiltä? Tutustu koko keskusteluketjuun täällä.