Articles

Hvordan Zip Eller Pakke Ut Filer fra Linux Terminal

  • Dave McKay

    @TheGurkha

  • Oppdatert 28 Mai 2019, 5:15pm EDT
linux shell prompt
fatmawati achmad zaenuri/.com

zip-filer er Et Universelt Arkiv som vanligvis brukes på windows, macos og til og med linux-systemer. Du kan lage et zip-arkiv eller pakke ut filer fra en med noen vanlige Linux-terminalkommandoer.

ZIP Komprimert Arkiv Filformat

takket være dominans AV ZIP-format I windows riket, ZIP-filer er trolig den vanligste formen for komprimert arkiv i verden.

Mens .tjære.gz og tar.bz2 filer er vanlige På Linux, Windows-brukere vil trolig sende deg et arkiv I ZIP-format. OG hvis du vil arkivere noen filer og sende Dem Til En Windows-bruker, VIL ZIP-formatet være den enkleste, mest kompatible løsningen for alle.

RELATERT: Hvordan Pakke Ut Filer fra en .tjære.gz eller .tjære.bz2-Fil på Linux

zip, unzip og Andre Verktøy

Du vet kanskje allerede At Linux og Unix-lignende operativsystemer som macOS har verktøy som lar deg lage ZIP-filer og pakke ut filer fra dem, kalt zip og unzip. Men det er en hel familie av relaterte verktøy som zipcloakzipdetailszipsplitog zipinfo.

Annonse

vi sjekket Noen Linux-distribusjoner for å se om de inkluderte disse verktøyene i standardinstallasjonen. Alle verktøyene var til stede I Ubuntu 19.04, 18.10 og 18.04. De var også til stede i Manjaro 18.04. Fedora 29 inkludert zip og unzip, men ingen av de andre verktøyene og det var også tilfelle For CentOS.

for å installere de manglende elementene På Fedora 29, bruk følgende kommando:

sudo dnf install perl-IO-Compress

zip installasjonskommando For Fedora

for å installere de manglende elementene På CentOS 7, bruk følgende kommando:

sudo yum install perl-IO-Compress

hvis noen av zip-verktøyene mangler fra en linux-distribusjon som ikke ble nevnt ovenfor, bruk den linux-Distribusjonens pakkehåndteringsverktøy for å installere den nødvendige pakken.

Hvordan Lage EN ZIP-Fil med zip-Kommandoen

for å lage EN ZIP-fil må du fortelle zip navnet på arkivfilen og hvilke filer som skal inkluderes i den. Du trenger ikke å legge til «.zip » utvidelse til arkivnavnet, men det gjør ingen skade hvis du gjør det.

for å opprette en fil som heter source_code.zip som inneholder alle c-kildekodefilene og topptekstfilene i gjeldende katalog, vil du bruke denne kommandoen:

zip source_code *.c *.h

zip-kommandoen i et terminalvindu

hver fil er oppført som den er lagt til. Navnet på filen og mengden komprimering som ble oppnådd på den filen, vises.

utdata fra zip-kommandoen i et terminalvindu

Annonse

hvis du ser på DET nye ZIP-arkivet, kan du se at «.zip » filtypen har blitt lagt til automatisk av zip.

ls -l source_code.zip

ls på zip-arkiv i et terminalvindu

hvis du ikke vil se utdataene fra zip SOM ZIP-filen er opprettet, bruk -q div > (stille) alternativ.

zip -q source_code *.c *.h

-q stille alternativet i en terminal vindu

Inkludert Kataloger I ZIP-Filer

for å inkludere underkataloger I ZIP-filen, bruk -r (rekursiv) alternativet og ta med navnet på sub-katalog på kommandolinjen. For å lage EN ZIP-fil som før og også inkludere arkiv-underkatalogen, bruk denne kommandoen.

zip -r -q source_code archive/ *.c *.h

-r rekursiv alternativ i et terminalvindu

for å være hensynsfull til personen som skal trekke ut filene fra ZIP-filen du lager, er det ofte høflig å lage ZIP-filer med filene i den som finnes i en katalog. Når personen som mottar ZIP-filen, trekker den ut, plasseres alle filene pent i en katalog på datamaskinen.

Annonse

i den følgende kommandoen skal vi arkiverework katalogen og alle underkataloger. Merk at denne kommandoen utstedes fra den overordnede katalogen i mappenwork.

zip -r -q source_code work/

zipping arbeidskatalogen i et terminalvindu

Angi Komprimeringsnivået

du kan angi hvor mye komprimering som brukes på filene når de legges til ZIP-arkivet. Området er fra 0 til 9, med 0 er ingen komprimering i det hele tatt. Jo høyere komprimering, jo lengre tid tar DET å lage ZIP-filen. For beskjedent STØRRELSE ZIP-filer, tidsforskjellen er ikke en betydelig straff. Men da, for beskjeden STØRRELSE ZIP-filer, er standardkomprimeringen (nivå 6) trolig god nok uansett.

for å fåzip for å bruke et bestemt komprimeringsnivå, pass nummeret som et alternativ på kommandolinjen, med en «-«, slik:

zip -0 -r -q source_code work/

-0 komprimeringsalternativ i et terminalvindu

standard komprimeringsnivå er 6. Det er ikke nødvendig å gi -6 alternativet, men det vil ikke skade hvis du gjør det.

zip -r -q source_code work/

komprimering på nivå 6 i et terminalvindu

maksimum kompresjonsnivå er nivå 9.

zip -9 -r -q source_code work/

-9 komprimering i et terminalvindu

Annonse

forskjellen mellom ingen komprimering (nivå 0) og standard komprimering (nivå 6) ER 400K. Forskjellen mellom standardkomprimering og det høyeste komprimeringsnivået (nivå 9) er bare 4K.

Det kan ikke virke mye, men for arkiver som inneholder hundrevis eller tusenvis av filer, vil den lille mengden ekstra komprimering per fil legge opp til en verdig plassbesparelse.

Legge Passord TIL ZIP-Filer

Legge passord TIL ZIP-filer er enkelt. Bruk alternativet-e (krypter), og du blir bedt om å skrive inn passordet ditt og skrive det inn for bekreftelse.

zip -e -r -q source_code work/

Legge til passord i zip-filer i et terminalvindu

Slik Pakker DU UT EN ZIP-Fil med unzip-Kommandoen

for å pakke ut filene fra EN ZIP-fil, bruk unzip-kommandoen og oppgi NAVNET PÅ ZIP-filen. Merk at du trenger å gi den «.zip » forlengelse.

unzip source_code.zip

unzip-kommandoen i et terminalvindu

Annonse

når filene pakkes ut, vises de i terminalvinduet.

utdata av pakke ut i et terminalvindu

ZIP-filer bærer ikke detaljer om fileierskap. Alle filene som er hentet har eieren satt til brukeren som er utpakking dem.

Akkurat som zipunzip har et -q(stille) alternativ, slik at du ikke trenger å se filoppføringen når filene hentes ut.

unzip -q source_code.zip

unzip-q-alternativet i et terminalvindu

Trekke Ut Filer til En Målkatalog

for å få filene pakket ut i en bestemt katalog, bruk-d (katalog), og gi banen til katalogen du ønsker at arkivet skal trekkes ut i.

unzip -q source_code.zip -d ./development

pakk ut en målkatalog i et terminalvindu

Pakk Ut Passordbeskyttede ZIP-Filer

hvis EN ZIP-fil er opprettet med et passord, vilunzip be deg om passordet. Hvis du ikke oppgir riktig passord, vil unzip ikke pakke ut filene.

unzip -q source_code.zip

unzip med passordkommandoen i et terminalvindu

Annonse

hvis du ikke bryr deg om at passordet ditt blir sett av andre—eller om det blir lagret i kommandohistorikken din—kan du oppgi passordet på kommandolinjen med -P (passord) alternativ. (Du må bruke en kapital » P.»)

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

pakke ut med passord i et terminalvindu

Unntatt Filer

hvis du ikke vil pakke ut en bestemt fil eller gruppe filer, bruk -x (ekskluder) alternativet. I dette eksemplet vil vi trekke ut alle filene bortsett fra de som slutter i en «.h » forlengelse.

unzip -q source_code.zip -x *.h

unzip ekskluder alternativ i et terminalvindu

Overskrive Filer

Anta at du har pakket ut et arkiv, Men du har slettet noen av de utpakkede filene ved en feil.

Annonse

en rask løsning for det ville være å pakke ut filene igjen. Men hvis DU prøver å pakke UT ZIP-filen i samme katalog som før ,vilunzip be deg om en beslutning om å overskrive filene. Det vil forvente ett av følgende svar.

Bortsett frar (rename) respons, er disse svarene case sensitive.

  • y: Ja, overskrive denne filen
  • n: Nei, ikke overskrive denne filen
  • A: Alle, overskrive alle filene
  • N: Ingen, overskrive ingen av filene
  • r: Gi Nytt Navn, pakk ut denne filen, men gi den et nytt navn. Du vil bli bedt om et nytt navn.

skriv meldinger i et terminalvindu

for å tvinge unzipfor å overskrive eventuelle eksisterende filer, bruk alternativet -o(overskrive).

unzip -o -q source_code.zip

overskrivingsalternativ i et terminalvindu

Den mest effektive måten å erstatte de manglende filene ville være å ha unzip bare pakke ut filer i arkivet som ikke er i målkatalogen. For å gjøre dette, bruk alternativet-n (aldri overskrive).

unzip -n source_code.zip

pakk ut med-n skriv aldri over alternativet i et terminalvindu

Ser Inne I EN ZIP-Fil

det er ofte nyttig og lærerikt å se en liste over filene i EN ZIP-fil før du pakker den ut. Du kan gjøre dette med alternativet-l (list archive). Den sendes gjennom less for å gjøre utgangen håndterlig.

unzip -l source_code.zip | less

pakk oppføring alternativet i en terminal vindu

Annonse

utgangen viser kataloger og filer i ZIP-filen, deres lengde og tid og dato de ble lagt til i arkivet. Trykk » q «for å avslutte fra less.

liste arkivutgang i et terminalvindu

Det finnes andre måter å kikke inn I EN ZIP-fil som gir forskjellige typer informasjon, som vi skal se.

Legg Til Et Passord Med Zipcloak-Kommandoen

hvis DU har opprettet EN ZIP-fil, men glemt å legge til et passord, hva kan du gjøre? Du kan raskt legge til et passord I ZIP-filen ved hjelp av kommandoenzipcloak. Pass navnet PÅ ZIP-filen på kommandolinjen. Du vil bli bedt om et passord. Du må bekrefte passordet ved å skrive det inn en gang til.

zipcloak source_code.zip

zipcloak i et terminalvindu

Vis Fildetaljer Med Zipdetails Kommandoen

zipdetails kommandoen vil vise deg mye informasjon om ZIP-filen. Den eneste fornuftige måten å håndtere mengden utgang denne kommandoen kan gi, er å pipe den gjennom less.

zipdetails source_code.zip | less

kommandoen zipdetails i et terminalvindu

Annonse

Merk at informasjonen vil inneholde filnavn selv om ZIP-filen er passordbeskyttet. DENNE typen informasjon lagres i ZIP-filen som metadata og er ikke en del av de krypterte dataene.

utdata av zipdetails i et terminalvindu

Søk I Filen Med Zipgrep Kommandoen

zipgrep kommandoen lar deg søke i filene i EN ZIP-fil. I det følgende eksemplet vil vi vite hvilke filer I ZIP-filen som har teksten » keyval.h » i dem.

zipgrep keyval.h source_code.zip

zipgrep-kommandoen i et terminalvindu

Vi kan se at fileneslang.coggetval.cinneholder strengen «keyval.t”.Vi kan også se at det er to kopier av hver av disse filene i forskjellige kataloger I ZIP-filen.

Vis Informasjon med Zipinfo Kommandoen

zipinfo kommandoen gir deg enda en måte å se inne I EN ZIP-fil. Som før, rør vi utgangen gjennom less.

zipinfo source_code.zip | less

zipinfo-kommando i et terminalvindu

fra venstre til høyre viser utgangen:

  • filtillatelsene
  • versjonen av verktøyet som brukes til Å lage ZIP-filen
  • den opprinnelige filstørrelsen
  • en filbeskrivelse (beskrevet nedenfor)
  • metoden for komprimering (deflasjon, i dette tilfellet)
  • data og tidsstempel
  • navnet på filen og en katalog
Annonse

filen descriptor består av to tegn. Det første tegnet vil være en «t» eller en » b » for å indikere en tekst eller binærfil. Hvis det er en stor bokstav filen er kryptert. Det andre tegnet kan være en av fire tegn. Dette tegnet representerer hvilken type metadata som er inkludert for denne filen: ingen, en utvidet lokal header, et «ekstra felt» eller begge deler.

  • -: hvis det ikke finnes noen, vil tegnet være en bindestrek
  • l: hvis det er en utvidet lokal header, men ingen ekstra felt
  • x: hvis det ikke er noen utvidet lokal header, men det er et ekstra felt
  • X: hvis det er en utvidet lokal header og det er et ekstra felt

zipinfo-utgang i et terminalvindu

Del Filen med Zipsplit-Kommandoen

Hvis DU trenger å sende ZIP-filen til noen andre, men det er størrelsesbegrensninger eller problemer med overføring av filen, kan du bruke zipsplit kommando for å dele den opprinnelige zip-filen i et sett med mindre zip-filer.

alternativet -n (størrelse) lar deg angi en maksimal størrelse for HVER AV DE NYE ZIP-filene. I dette eksemplet deler visource_code.zip – filen. Vi vil ikke at NOEN AV DE nye ZIP-filene skal være større enn 100 KB (102400 byte).

zipsplit -n 102400 source_code.zip

zipsplit-kommandoen i et terminalvindu

Annonse

størrelsen du velger, kan ikke være mindre enn størrelsen på noen av filene I ZIP-filen.Ved hjelp av disse kommandoene kan du lage DINE EGNE ZIP-filer, pakke UT ZIP-filer du mottar, og utføre ulike andre operasjoner på Dem uten å forlate Linux-terminalen.Dave McKay Brukte først datamaskiner da stansede papirbånd var på moten, og han har programmert siden den gang. Etter over 30 år i IT-bransjen er han nå en heltids teknologijournalist. I løpet av sin karriere har han jobbet som frilansprogrammerer, leder av et internasjonalt programvareutviklingsteam, EN IT-tjenesteprosjektleder, og senest Som Databeskyttelsesansvarlig. Dave er En Linux evangelist og åpen kildekode talsmann.Les Hele Bio »