Kuinka purat yhden kansion suuresta tar.gz-arkistosta?

Käytän tätä komentoa 5 Gt: n arkisto

tar -zxvf archive.tar.gz /folder/in/archive 

onko tämä oikea tapa tehdä tämä? Vaikuttaa siltä, että se kestää ikuisesti ilman komentorivilähtöä …

Kommentit

  • Käytitkö absoluuttista tai suhteellista polkua? Pitäisi olla suhteellinen, paitsi että se näyttää oikealta. Kuinka kauan annoit sen käydä, ja kuinka hyvä on järjestelmäsi? Nopealla koneella kestää ainakin useita minuutteja. Potentiaalisesti tunti tai enemmän? ' Suoritin testin nyt.
  • Kyllä, se valmistui ~ 1 tunnin kuluttua, mutta absoluuttinen polku oli väärä, olit oikeassa.
  • Linuxissa voit katsella kuinka kaukana arkistosta tar on cat /proc/$(pidof tar)/fdinfo/0 kanssa (mukauta komentoa, jos sinulla on enemmän kuin yksi tar prosessi käynnissä).
  • Tärkeä osa ei myöskään ole jälkiviiva. folder/folder2/ -toiminnon käyttäminen ei onnistunut. div class = ”answer”>

    tar tallentaa suhteelliset polut oletuksena . GNU-tar jopa sanoo niin, jos yrität tallentaa absoluuttisen polun:

    tar -cf foo.tar /home/foo tar: Removing leading `/" from member names 

    Jos haluat purkaa tietyn kansion, katso mitä siinä on tar-tiedosto:

    tar -tvf foo.tar 

    Ja kirjoita tarkka tiedostonimi. foo.tar -tiedostoni tapauksessa voisin pura /home/foo/bar sanomalla:

    tar -xvf foo.tar home/foo/bar # Note: no leading slash 

    Joten ei, lähettämäsi tapa ei ole (välttämättä) oikea tapa tehdä se. Sinun on jätettävä pois johtava kauttaviiva. Jos haluat simuloida absoluuttisia polkuja, tee ensin cd / ja varmista, että olet pääkäyttäjä. Tämä tekee myös saman:

    tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option 

    On hyvin ilmeisiä, hyviä syitä, miksi tar muuntaa polut suhteellisiksi. Yksi on kyky palauttaa arkisto muuhun kuin alkuperäiseen lähteeseen. toinen on suojaus. Voit purkaa arkiston, odottaa sen tiedostojen näkyvän nykyisessä työhakemistossasi ja korvata sen sijaan järjestelmätiedostot (tai oman työsi) vahingossa muualla.

    Huomaa: jos käytät -P -vaihtoehto, tar tulee arkistoi absoluuttiset polut. Joten kannattaa aina tarkistaa isojen arkistojen sisältö ennen purkamista.

    Kommentit

    • --strip-components=N voi olla hyödyllinen joillekin täällä.
    • minun tapauksessani oli tarpeen kirjoittaa ./foldername/ , luulen, että se johtui siitä, että kun loin tervan, loin sen tar -cvf santi.tar ./* -sovelluksella ja kun " lueteltu " terva, tämä on mitä se sanoi drwxr-xr-x santi/santi 0 2016-04-11 09:42 ./foldername/
    • Ja noin .gz?
    • @PeterKrauss muuttaa -xvf arvoksi -xzvf (lisäämällä -z -vaihtoehto) ja ilmeisesti foo.tarfoo.tar.gz tai mikä tahansa arkistosi nimi on. Sama koskee -j (bz2) ja joissakin uusimmissa versioissa -J (xz). Muussa tapauksessa toimii myös putki, kuten zcat foo.tar.gz | tar -xvf - ….
    • Muista, että jos olet kyllästynyt kaikkeen monipuoliseen ulostuloon purkamisen aikana, ohita v kaikissa esimerkeissä. Esim. tar -tf foo.tar ja tar -xf foo.tar ....

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *