21Aug

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


Tari-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?

Päivän kysymys &Vastausistunto tulee meille kohteliaasti SuperUser-osastoon Stack Exchange, yhteisöllinen ryhmittely Q & A verkkosivuilla.

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 molemmatyhdistää tiedostot ja suorittaa pakkaamisen samassa loogisessa tiedostomuodossa.

Kysymykset:

  • Onko tehokas rangaistus aggregoituvassa /compression/-dekompressioasteessa, kun käytetään gzipin tai bzip2: n kapseloidun tar: n käyttämistä 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 sellainen vanha tiedostomuoto ja uudemmat 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ällaisetUNIX-käyttöjärjestelmiä, tiedostojen siirtoa, ohjelmalähdettä ja binaaritiedostoja varten, ja joskus jopa paketinhallintamuodoksi?

Tämä 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 jonkinlaisen käsityksen tar-formaatin pitkäikäisyydestä ja toimivuudesta:

Osa 1: Suorituskyky

Tässä on vertailua kahdesta erillisestä työnkulusta ja siitä, mitä he tekevät.

Sinulla on blah.tar.gz-levylle asennettu tiedosto, joka on esimerkiksi 1 gigatavua pakattuja gzip-tiedostoja, jotka pakkaamattomana ovat 2 gigatavua( joten pakkaussuhde on 50%).

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

tar cf blah.tar tiedostot. ..

Tämä johtaisi blah.tar joka on pelkkä tiedostojen yhdistäminen. .kompressoimattomassa muodossa.

Sitten teet

gzip blah.tar

Tämä lukee blah.tar: n sisällön levyltä, pakkaa ne gzip-puristusalgoritmilla, kirjoittaa sisällön blah.tar.gz, purkaa sen jälkeen tiedoston blah.tervaa.

Nyt dekompressoimme!

Way 1

Sinulla on blah.tar.gz, tavalla tai toisella.

Päätäksesi ajaa:

gunzip blah.tar.gz

Tämä

  • lukee blah.tar.gz: n 1 Gt: n pakatun datatiedot.
  • PROCESS kompressoidut tiedot gzip-purkajan kautta muistiin.
  • Kun muistipuskuri täyttyy "data-arvolla", kirjoita kompressoimattomat tiedot levylle fileblah.tar ja toista, kunnes kaikki pakatut tiedot luetaan.
  • Poista yhteys( poista) tiedosto blah.tar.gz.

Nyt sinulla on blah.tar levylle, joka on pakkaamaton, mutta sisältää yhden tai useamman sen sisältämät tiedostot, joilla on hyvin alhainen tietorakenteen yläpuolella. Tiedoston koko on todennäköisesti pari tavua suurempi kuin kaikkien tiedostojen summa olisi.

Käytät:

tar xvf blah.tar

Tämä

  • lukee blah.tar: n ja tiedostomuodon tietorakenteiden pakkaamatonta datatietoa 2 gigatavua, mukaan lukien tiedot käyttöoikeuksien tiedoista, tiedostonimistä, hakemistoista jne.
  • WRITE levylle2 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ä.

Kokonaista dataa, jonka READ levystä tässä prosessissa oli 1 Gt( gunzip) + 2 Gt( tar) = 3 Gt.

Tämän prosessin kiintolevyllä oli yhteensä 2 gigatavua( gunzip) + 2 gigatavua( tar) + muutamia tavua metatiedot = noin 4 gigatavua.

Way 2

Sinulla on blah.tar.gz, tavalla tai toisella.

Päätte ajaa:

tar xvzf blah.tar.gz

Tämä

  • lukee 1: n bhl.tar.gz: n pakatun datatiedot muistiin kerrallaan.
  • PROCESS kompressoituja tietoja gzip-purkajan kautta muistiin.
  • Kun muistipuskuri täyttyy, se -putki tallentaa tiedot muistiin tar-tiedostomuodon jäsentimen kautta, joka lukee tietoja metatiedoista jne. Ja kompressoimattomista tiedostatiedoista.
  • Kun muistipuskuri täyttyy tar-tiedostojen jäsentimessä, se kirjoittaa kompressoituja tietoja levylle luomalla tiedostoja ja hakemistoja ja täyttämällä ne pakkaamattomilla sisällöillä.

Tämän : n kiintolevyn kokonaismäärä, joka oli tässä prosessissa, oli 1 Gt pakattua dataa, ajanjaksoa.

Tämän WROTE -tietokannan koko data oli 2 Gt pakkaamatonta dataa + muutamia tavuja metatietoihin = noin 2 Gt.

Jos huomaat, : n : n I / O-levyn määrä on : n identtinen : n kiintolevy I / O, jota esimerkiksi Zip- tai 7-Zip -ohjelmat suorittavat, mikä säätää kompressiosuhteen eroja.

Ja jos pakkaussuhde on sinun huolesi, käytä Xz-kompressoria kapseloimaan tervan, ja sinulla on LZMA2'n TAR-arkisto, joka on yhtä tehokas kuin 7-Zipin edistynein algoritmi: -)

Osa 2: Ominaisuudet

tar tallentaa UNIX-käyttöoikeudet tiedoston metatiedoissaan, ja se tunnetaan hyvin ja testataan menestyksekkäästi pakaten hakemistoon kaikenlaisilla eri käyttöoikeuksilla, symbolisilla linkkeillä jne. On enemmän kuin muutamia tapauksia, joissa joudutaan ehkä keräämään joukko tiedostojayhdeksi 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ähdeluettelossa tai binäärimuodossa. tar.gz tai. tar.bz2, koska se on "pienin yhteinen nimittäjä" -tiedostomuoto: aivan kuten useimmat Windows-käyttäjät saavat. zip tai. rarpurkutyökaluja, useimmat Linux-asennukset, jopa kaikkein yksinkertaisimmat, saavat käyttää ainakin tervaa ja gunzipia riippumatta siitä, kuinka vanha tai pienempi. Jopa Android-laitteilla on pääsy näihin työkaluihin.

Uudenlaisia ​​projekteja, jotka kohdistuvat nykyaikaisten jakeluohjelmien käyttäjiin, voivat hyvin jakaa nykyaikaisemmassa muodossa, kuten. tar.xz( käyttäen Xz( LZMA) -kompressiomuotoa, joka pakkaa paremmin kuin gzip tai bzip2) tai. 7z, joka on samanlainenZip- tai Rar-tiedostomuotoihin siinä, että se pakkaa ja määrittää asettelun useiden tiedostojen kapseloimiseksi yhteen tiedostoon.

Et näe. 7z: n useammin samasta syystä, että musiikkia ei myydä online-latauskaupoista aivan uusissa muodoissa, kuten Opus, tai video WebM: ssä.Yhteensopivuus vanhojen tai hyvin perustuvien järjestelmien kanssa.

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