Kotisivu » miten » Mikä on Tar-tiedostomuodon käytön nykyinen etu?

    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) tiedosto blah.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 tiedostoonblah.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 ja terva 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 kapseloida terva, ja sinulla on LZMA2'ed TAR -arkisto, joka on yhtä tehokas kuin edistynein algoritmi 7-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ä.