Tiedostojen pakkaaminen tai purkaminen Linux-terminaalista

ZIP-tiedostot ovat yleinen arkisto, jota käytetään yleisesti Windows-, macOS- ja jopa Linux-järjestelmissä. Voit luoda zip-arkiston tai purkaa tiedostot yhdestä tavallisista Linux-päätelaitteiden komennoista.

ZIP-pakattu arkistotiedostomuoto

Kiitos ZIP-muodon hallitsevuuden Windows-alueella, ZIP-tiedostot ovat luultavasti yleisin pakattujen arkistojen muoto maailmassa.

Vaikka .tar.gz- ja tar.bz2-tiedostot ovat yleisiä Linuxissa, Windows-käyttäjät todennäköisesti lähettävät sinulle arkiston ZIP-muodossa. Ja jos haluat arkistoida joitain tiedostoja ja lähettää ne Windows-käyttäjälle, ZIP-muoto on helpoin ja yhteensopivin ratkaisu kaikille.

RELATED: Kuinka purkaa tiedostoja .tar.gz- tai .tar.bz2-tiedostoista Linuxissa

zip, pura ja muut apuohjelmat

Saatat jo tietää, että Linuxilla ja Unixin kaltaisilla käyttöjärjestelmillä, kuten macOS, on työkaluja, joiden avulla voit luoda ZIP-tiedostoja ja purkaa niistä tiedostoja, joita kutsutaan zipja unzip. Mutta siellä on koko perheen liittyviä apuohjelmia, kuten zipcloak, zipdetails, zipsplit, ja zipinfo.

Tarkistimme joitain Linux-jakeluja selvittääkseen, sisältyivätkö nämä apuohjelmat vakioasennukseen. Kaikki apuohjelmat olivat läsnä Ubuntussa 19.04, 18.10 ja 18.04. He olivat läsnä myös Manjarossa 18.04. Fedora 29 sisälsi zipja unzip, mutta mitään muita apuohjelmia, ja näin oli myös CentOS: n tapauksessa.

Asenna puuttuvat elementit Fedora 29: een seuraavalla komennolla:

sudo dnf asenna perl-IO-Compress

Asenna puuttuvat elementit CentOS 7: een seuraavalla komennolla:

sudo yum asenna perl-IO-Compress

Jos jokin zip-apuohjelmista puuttuu Linux-jakelusta, jota ei mainittu yllä, asenna vaadittu paketti kyseisen Linux-jakelun paketinhallintatyökalulla.

Kuinka luoda ZIP-tiedosto zip-komennolla

ZIP-tiedoston luomiseksi sinun on kerrottava ziparkistotiedoston nimi ja mitkä tiedostot sisällytettävä siihen. Sinun ei tarvitse lisätä .zip-laajennusta arkiston nimeen, mutta se ei haittaa, jos teet niin.

Voit luoda tiedoston nimeltä source_code.zipkaikki C-lähdekooditiedostot ja otsikkotiedostot nykyisessä hakemistossa käyttämällä tätä komentoa:

zip lähdekoodi * .c * .h

Jokainen tiedosto on luettelossa sen lisätessä. Näytetään tiedoston nimi ja tiedostolla saavutettu pakkauksen määrä.

Jos tarkastelet uutta ZIP-arkistoa, näet, että .zip-tiedostotunniste on lisätty automaattisesti zip.

ls -l lähdekoodi.zip

Jos et halua nähdä lähdettä zipZIP-tiedoston luomisen yhteydessä, käytä -q(hiljainen) -vaihtoehtoa.

zip -q lähdekoodi * .c * .h

Hakemistojen sisällyttäminen ZIP-tiedostoihin

Jos haluat sisällyttää alihakemistoja ZIP-tiedostoon, käytä -r(rekursiivinen) -vaihtoehtoa ja sisällytä alihakemiston nimi komentoriville. Käytä tätä komentoa, jos haluat luoda ZIP-tiedoston kuten aiemmin ja sisällyttää myös arkiston alihakemiston.

zip -r -q lähdekoodiarkisto / * .c * .h

Jos haluat olla huomaavainen henkilölle, joka purkaa tiedostot luomastasi ZIP-tiedostosta, on usein kohteliasta luoda ZIP-tiedostoja hakemistossa olevilla tiedostoilla. Kun ZIP-tiedoston vastaanottava henkilö purkaa sen, kaikki tiedostot sijoitetaan siististi tietokoneen hakemistoon.

Seuraavassa komennossa aiomme arkistoida workhakemisto ja kaikki alihakemistot. Huomaa, että tämä käsky on annettu pois emohakemisto että workkansion.

zip -r -q lähdekoodityö /

Pakkaustason asettaminen

Voit määrittää, kuinka paljon pakkauksia tiedostoihin lisätään, kun ne lisätään ZIP-arkistoon. Alue on 0-9, jolloin 0 ei ole lainkaan puristusta. Mitä suurempi pakkaus, sitä kauemmin ZIP-tiedoston luominen kestää. Kohtuullisen kokoisissa ZIP-tiedostoissa aikaero ei ole merkittävä rangaistus. Mutta sitten vaatimattoman kokoisille ZIP-tiedostoille oletuspakkaus (taso 6) on todennäköisesti riittävän hyvä joka tapauksessa.

Päästä zipkäyttämään tiettyä tasoa puristus, siirtää määrä lisävarusteena komentorivin, jossa on ”-”, kuten tämä:

zip -0 -r -q lähdekoodityö /

Oletusarvoinen pakkaustaso on 6. Vaihtoehtoa ei tarvitse antaa -6, mutta se ei vahingoita, jos teet niin.

zip -r -q lähdekoodityö /

Suurin pakkaustaso on taso 9.

zip -9 -r -q source_code work /

Kun täällä arkistoitavat tiedostot ja hakemistot valitaan, pakkauksen puuttumisen (taso 0) ja oletuskompression (taso 6) välinen ero on 400 kt. Oletuspakkauksen ja korkeimman pakkaustason (taso 9) ero on vain 4K.

Se ei ehkä näytä paljon, mutta satoja tai jopa tuhansia tiedostoja sisältävissä arkistoissa pieni ylimääräinen pakkaus tiedostoa kohden lisäisi kannattavaa tilaa.

Salasanojen lisääminen ZIP-tiedostoihin

Salasanojen lisääminen ZIP-tiedostoihin on helppoa. Käytä -e(salaa) -vaihtoehtoa ja sinua pyydetään antamaan salasanasi ja antamaan se uudelleen vahvistusta varten.

zip -e -r -q source_code work /

ZIP-tiedoston purkaminen purkukomennolla

Voit purkaa tiedostot ZIP-tiedostosta käyttämällä unzip-komentoa ja antamalla ZIP-tiedoston nimen. Huomaa, että tee tarve tarjota ”zip” laajennus.

pura lähdekoodi.zip

Kun tiedostot puretaan, ne luetellaan pääteikkunassa.

ZIP-tiedostoissa ei ole tiedostojen omistajuuden yksityiskohtia. Kaikkien purettujen tiedostojen omistaja on asetettu käyttäjälle, joka purkaa ne.

Aivan kuten zip, unzip sillä on -q(hiljainen) vaihtoehto, joten sinun ei tarvitse nähdä tiedostoluetteloa tiedostoja purettaessa.

pura -q source_code.zip

Tiedostojen purkaminen kohdehakemistoon

Jos haluat purkaa tiedostot tiettyyn hakemistoon, käytä -d(hakemisto) -vaihtoehtoa ja anna polku hakemistoon, johon arkisto puretaan.

pura -q lähdekoodi.zip -d ./kehitys

Pura salasanasuojatut ZIP-tiedostot

Jos ZIP-tiedosto on luotu salasanalla, unzipkysyy sinulta salasanaa. Jos et anna oikeaa salasanaa,  unzipälä pura tiedostoja.

pura -q source_code.zip

Jos et välitä siitä, että muut näkevät salasanasi - eikä siitä, että se tallennetaan komentohistoriaasi -, voit antaa salasanan komentorivillä -P(salasana) -vaihtoehdolla. (Sinun on käytettävä isoa kirjainta P.)

pura -P fifty.treacle.cutlass -q source_code.zip

Poistetaan tiedostot

Jos et halua purkaa tiettyä tiedostoa tai tiedostoryhmää, käytä -xvaihtoehtoa (poissulkeminen). Tässä esimerkissä haluamme purkaa kaikki tiedostot paitsi .h-laajennuksella päättyvät tiedostot.

pura -q lähdekoodi.zip -x * .h

Tiedostojen korvaaminen

Oletetaan, että olet purkanut arkiston, mutta olet poistanut muutaman puretuista tiedostoista vahingossa.

Nopea korjaus siihen olisi purkaa tiedostot uudelleen. Mutta jos yrität purkaa ZIP-tiedoston samaan hakemistoon kuin ennen, unzipse kehottaa sinua tekemään päätöksen tiedostojen korvaamisesta. Se odottaa yhtä seuraavista vastauksista.

Lukuun ottamatta r(nimetä uudelleen) vaste, nämä vasteet ovat isot ja pienet kirjaimet.

  • y: Kyllä, korvaa tämä tiedosto
  • n: Ei, älä korvaa tätä tiedostoa
  • V: Kaikki, korvaa kaikki tiedostot
  • N: Ei mitään, korvaa mikään tiedostoista
  • r: Nimeä uudelleen, pura tämä tiedosto, mutta anna sille uusi nimi. Sinua pyydetään antamaan uusi nimi.

Jos haluat pakottaa unzipkorvaamaan kaikki olemassa olevat tiedostot, käytä -o(korvaa) -vaihtoehtoa.

pura -o -q source_code.zip

Tehokkain tapa korvata puuttuvat tiedostot olisi unzippurkaa vain kaikki tiedostot arkistosta, jotka eivät ole kohdehakemistossa. Voit tehdä tämän käyttämällä -n(ei koskaan korvaa) -vaihtoehtoa.

pura -n lähdekoodi.zip

Tarkastellaan ZIP-tiedoston sisällä

Usein on hyödyllistä ja opettavaista nähdä luettelo ZIP-tiedoston sisällä olevista tiedostoista ennen sen purkamista. Voit tehdä tämän -l(luetteloarkisto) -vaihtoehdolla. Se johdetaan läpi less, jotta tuotos olisi hallittavissa.

pura -l-lähdekoodi.zip | Vähemmän

Tuloksessa näkyy hakemistot ja tiedostot ZIP-tiedostossa, niiden pituus sekä aika ja päivämäärä, jolloin ne lisättiin arkistoon. Lopeta painamalla “q” less.

On muitakin tapoja kurkistaa ZIP-tiedoston sisällä, jotka antavat erityyppisiä tietoja, kuten näemme.

Lisää salasana zipcloak-komennolla

Jos olet luonut ZIP-tiedoston, mutta unohdit lisätä salasanan, mitä voit tehdä? Voit nopeasti lisätä salasanan ZIP-tiedostoon zipcloakkomennolla. Anna ZIP-tiedoston nimi komentoriville. Sinulta kysytään salasanaa. Sinun on vahvistettava salasana kirjoittamalla se toisen kerran.

zipcloak source_code.zip

Näytä tiedoston tiedot zipdetails-komennolla

zipdetailsKomento näyttää sinulle paljon koskevien tietojen ZIP-tiedostossa. Ainoa järkevä tapa käsitellä tämän komennon antaman tuotoksen määrää on siirtää se läpi less.

zipdetails source_code.zip | Vähemmän

Huomaa, että tiedot sisältävät tiedostonimet, vaikka ZIP-tiedosto on suojattu salasanalla. Tämäntyyppiset tiedot tallennetaan ZIP-tiedostoon metadatana, eivätkä ne ole osa salattuja tietoja.

Hae tiedoston sisältä zipgrep-komennolla

zipgrepKäskyllä voit etsiä sisällä tiedostoja zip-tiedostoon. Seuraavassa esimerkissä haluamme tietää, missä ZIP-tiedostossa on teksti "keyval.h".

zipgrep keyval.h lähdekoodi_zip

Voimme nähdä, että tiedostot slang.cja getval.csisältävät tekstin ”keyval.h” Voimme myös nähdä, että on olemassa kaksi kopiota näistä tiedostoista eri hakemistojen ZIP-tiedostossa.

Tarkastele tietoja zipinfo-komennolla

zipinfoKomento antaa vielä toinen tapa tarkastella sisällä ZIP-tiedosto. Kuten aikaisemmin, putkemme tuotoksen läpi less.

zipinfo source_code.zip | Vähemmän

Vasemmalta oikealle lähtö näyttää:

  • Tiedoston oikeudet
  • ZIP-tiedoston luomiseen käytetyn työkalun versio
  • Alkuperäinen tiedostokoko
  • Tiedoston kuvaus (kuvattu alla)
  • Puristusmenetelmä (tässä tapauksessa deflaatio)
  • Tiedot ja aikaleima
  • Tiedoston ja minkä tahansa hakemiston nimi

Tiedoston kuvaus koostuu kahdesta merkistä. Ensimmäinen merkki on "t" tai "b" ilmaisemaan teksti- tai binaaritiedostoa. Jos kyseessä on iso kirjain, tiedosto salataan. Toinen merkki voi olla yksi neljästä merkistä. Tämä merkki kuvaa, minkä tyyppiset metatiedot tähän tiedostoon sisältyvät: ei mitään, laajennettu paikallinen otsikko, "ylimääräinen kenttä" tai molemmat.

  • -: Jos kumpaakaan ei ole, merkki on väliviiva
  • l: jos on olemassa laajennettu paikallinen otsikko, mutta ei ylimääräistä kenttää
  • x: jos laajennettua paikallista otsikkoa ei ole, mutta ylimääräinen kenttä on olemassa
  • X: jos on laajennettu paikallinen otsikko ja on ylimääräinen kenttä

Jaa tiedosto zipsplit-komennolla

Jos sinun on lähetettävä ZIP-tiedosto jollekin muulle, mutta tiedoston siirtämisessä on kokorajoituksia tai ongelmia, voit zipsplitjakaa komennon komennolla alkuperäisen ZIP-tiedoston pienempiin ZIP-tiedostoihin.

-n(Koko) vaihtoehdon avulla voit asettaa maksimikoko kunkin uuden zip-tiedostoista. Tässä esimerkissä source_code.ziptiedosto jaetaan . Emme halua, että kaikki uudet ZIP-tiedostot ovat suurempia kuin 100 kt (102400 tavua).

zipsplit -n 102400 source_code.zip

Valitsemasi koko ei voi olla pienempi kuin minkä tahansa ZIP-tiedoston tiedoston koko.

Näiden komentojen avulla voit luoda omia ZIP-tiedostoja, purkaa saamiasi ZIP-tiedostoja ja suorittaa niille muita toimintoja poistumatta Linux-päätelaitteesta.