If-Koubou

Mitä hyötyä Tar-tiedostomuodosta käytetään nykyään?

Mitä hyötyä Tar-tiedostomuodosta käytetään nykyään? (Miten)


Tar arkistointimuoto on vuosien mittaan todellinen Methuselah, mutta se on edelleen raskaassa käytössä. Mikä tekee tar-muodon niin hyödyllisestä pitkän alun jälkeen?

Tämän päivän kysymys- ja vastausistunto tulee meihin SuperUserin hyväksi - Stack Exchangein alaosasto, joka on yhteisöllinen Q & A-sivustojen ryhmittely.

Kysymys

SuperUser-lukija MarcusJ on ​​utelias tar-formaatista ja miksi käytämme sitä vielä kaikkien näiden vuosien jälkeen:

Tiedän, että tar on tehty kasettiarkistoista takaisin päivälle, mutta tänään meillä on arkistoida tiedostomuotoja, jotka yhdistävät tiedostoja ja suorittavat pakkauksen samassa loogisessa tiedostomuodossa.

kysymykset:

  • Onko tehokas rangaistus aggregointi- / puristus- / dekompressiovaiheessa gzipin tai bzip2: n kapseloidun tar: n käyttämiseksi verrattuna sellaiseen tiedostomuotoon, joka yhdistää ja puristaa samassa tietorakenteessa? Oletetaan, että kompressorin vertailuaika on identtinen (esim. Gzip ja Deflate ovat samanlaisia).
  • Onko tar-tiedostomuodossa sellaisia ​​ominaisuuksia, joita muut tiedostomuodot, kuten .7z ja .zip eivät ole?
  • Koska tar on niin vanha tiedostomuoto, ja nykyisemmät tiedostomuodot ovat olemassa, miksi tar (joko kapseloidaan gzip, bzip2 tai jopa uusi xz) vielä niin laajalti käytössä tällä hetkellä GNU / Linux, Android, BSD ja muut tällaiset UNIX käyttöjärjestelmiä, tiedostojen siirtoa, ohjelmalähdettä ja binaaritiedostoja varten, ja joskus jopa paketinhallintaformaatiksi?

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

SuperUser-avustaja Allquixotic tarjoaa jonkinlaista tietoa tar-formaatin pitkäikäisyydestä ja toimivuudesta:

Osa 1: Suorituskyky

Tässä on vertailu kahden erillisen työnkulun ja niiden tekemiseen.

Sinulla on tiedosto levylleblah.tar.gz joka on esimerkiksi 1 gigatavua gzip-pakattua dataa, joka pakkaamattomana vaatii 2 gigatavua (joten pakkaussuhde on 50%).

Näin voit luoda tämän, jos haluat tehdä arkistoinnin ja pakkaamisen erikseen, olisi:

tar cf blah.tar tiedostot ... 

Tämä johtaisi siihenblah.tar joka on pelkkä aggregointitiedostot… kompressoimattomassa muodossa.

Sitten tekisit

gzip blah.tar 

Tämä lukisi sisällönblah.tar levyltä, pakkaa ne gzip-puristusalgoritmilla, kirjoita sisältöblah.tar.gz, purkaa sitten tiedosto (poistetaan)blah.tar.

Pura nyt dekompressi!

Tapa 1

Sinulla onblah.tar.gz, tavalla tai toisella.

Päätit käyttää:

gunzip blah.tar.gz 

Tämä tulee

  • LUE 1 Gt: n pakattujen tietojen sisältöblah.tar.gz.
  • PROCESS pakattuja tietojagzip decompressor muistissa.
  • Kun muistipuskuri täyttää "data" -arvon, kirjoita pakkaamattomat tiedot tiedostoonblah.tar levylle ja toista, kunnes kaikki pakatut tiedot luetaan.
  • Poista yhteys (poistetaan) tiedostoblah.tar.gz.

Nyt sinulla onblah.tar levylle, joka on pakkaamaton mutta sisältää yhden tai useamman sen sisältämät tiedostot, joiden tietojen rakenne on liian alhainen. Tiedostokoko on luultavastipari tavua suurempi kuin kaikkien tiedostotietojen summa.

Sinä juokset:

tar xvf blah.tar 

Tämä tulee

  • LUE 2 Gt: n pakkaamatonta datasisältöäblah.tar jaterva tiedostomuodon tietorakenteet, mukaan lukien tiedot tiedostojen käyttöoikeuksista, tiedostonimistä, hakemistoista jne.
  • Kirjoita levylle 2 Gt: n data ja metatiedot. Tämä tarkoittaa: tietojen rakenteen / metatietojen kääntämistä uusien tiedostojen ja hakemistojen luomiseen levylle sopivaksi tai uudelleenkirjoittamalla olemassa olevia tiedostoja ja hakemistoja uusilla tietosisällöillä.

Kokonaistiedot meLUKEA levystä tässä prosessissa oli 1 Gt (gunzip) + 2 Gt (tar) = 3 Gt.

Kokonaistiedot meKIRJOITTI levylle tässä prosessissa oli 2 gigatavua (gunzipille) + 2 gigatavua (tar) + muu tavu metatiedolle = noin 4 gigatavua.

Way 2

Sinulla onblah.tar.gz, tavalla tai toisella.

Päätit käyttää:

tar xvzf blah.tar.gz 

Tämä tulee

  • LUE 1 Gt: n pakattujen tietojen sisältöblah.tar.gz, lohko kerrallaan, muistiin.
  • PROCESS pakattuja tietojagzip decompressor muistissa.
  • Kun muistipuskuri täyttyy, se tuleeputki että tiedot, muistiin, läpiterva tiedostomuotoesittelijä, joka lukee tietoja metatiedoista jne. ja kompressoimattomista tiedostatiedoista.
  • Kun muistipuskuri täyttyyterva tiedoston jäsentimen, se kirjoittaa kompressoimatonta dataa levylle luomalla tiedostoja ja hakemistoja ja täyttämällä ne pakkaamattomilla sisällöillä.

Kokonaistiedot meLUKEA levyltä tässä prosessissa oli 1 Gt pakattua dataa, ajanjaksoa.

Kokonaistiedot meKIRJOITTI levylle tässä prosessissa oli 2 Gt pakkaamatonta dataa + muutamia tavuja metatietoihin = noin 2 Gt.

Jos huomaat, I / O-levyn määräWay 2 onidenttinen levyn I / O: lle, jota sanotaan, esimerkiksiPostinumero tai7-Zip ohjelmat, säätää mahdollisia kompressiosuhteita.

Ja jos pakkaussuhde on sinun huolesi, käytäxz kompressori kapseloidaterva, ja sinulla on LZMA2'n TAR-arkisto, joka on yhtä tehokas kuin edistynein algoritmi7-Zip :-)

Osa 2: Ominaisuudet

terva tallentaa UNIX-käyttöoikeudet tiedoston metatietoihinsa, ja se tunnetaan hyvin ja testataan menestyksekkäästi pakattamalla hakemistoon kaikenlaisia ​​erilaisia ​​käyttöoikeuksia, symbolisia linkkejä jne.On enemmän kuin muutamia tapauksia, joissa joudutaan lisäämään joukko tiedostoja yhdeksi tiedostoksi tai virralle, mutta ei välttämättä pakkaa sitä (vaikka pakkaus on hyödyllinen ja usein käytetty).

Osa 3: Yhteensopivuus

Monet työkalut jakautuvat lähdekoodeissa tai binäärimuodossa .tar.gz tai .tar.bz2, koska se on "pienin yhteinen nimittäjä" -tiedostomuoto: aivan kuten useimmilla Windows-käyttäjillä on pääsy .zip- tai .rar-purkuohjelmiin, useimmat Linux-asennukset, jopa kaikkein yksinkertaisimpia, pääsevät ainakin tar ja gunzip, ei väliä kuinka vanha tai pared alas. Jopa Android-laitteilla on pääsy näihin työkaluihin.

Uusia projekteja, jotka kohdistuvat nykyaikaisia ​​jakeluohjelmia käyttäviin yleisöihin, voivat jakautua hyvin nykyaikaisemmassa muodossa, kuten .tar.xz (käyttäen Xz (LZMA) -kompressiomuotoa, joka pakkaa paremmin kuin gzip tai bzip2) tai .7z, joka on samanlainen kuin Zip- tai Rar-tiedostomuotoja, koska se sekä pakkaa että määrittää asettelun useiden tiedostojen kapseloimiseksi yhteen tiedostoon.

Et näe .7z: n käyttämiä useammin samasta syystä, että musiikkia ei myydä online-lataamissa myymälöissä uusissa muodoissa, kuten Opusissa tai videossa WebM: ssä. Yhteensopivuus vanhojen tai hyvin perustuvien järjestelmien kanssa.

Onko jokin asia lisättävä selitykseen? Kuulkaa kommentit. Haluatko lukea lisää vastauksia muilta tech-tajuilta Stack Exchange-käyttäjiltä? Katso koko keskusteluketju täältä.