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 zip
ja 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 zip
ja 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 zip
arkistotiedoston 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.zip
kaikki 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ä zip
ZIP-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 work
hakemisto ja kaikki alihakemistot. Huomaa, että tämä käsky on annettu pois emohakemisto että work
kansion.
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ä zip
kä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, unzip
kysyy 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ä -x
vaihtoehtoa (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, unzip
se 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 unzip
korvaamaan kaikki olemassa olevat tiedostot, käytä -o
(korvaa) -vaihtoehtoa.
pura -o -q source_code.zip
Tehokkain tapa korvata puuttuvat tiedostot olisi unzip
purkaa 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 zipcloak
komennolla. 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
zipdetails
Komento 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
zipgrep
Kä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.c
ja getval.c
sisä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
zipinfo
Komento 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 zipsplit
jakaa 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.zip
tiedosto 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.