Articles

Cum să Zip sau dezarhivați fișierele de pe terminalul Linux

  • Dave McKay

    @TheGurkha

  • actualizat 28 Mai 2019, 5:15pm EDT
Linux shell prompt
Fatmawati Achmad zaenuri/.com

fișierele zip sunt o arhivă universală utilizată în mod obișnuit pe sistemele Windows, MacOS și chiar Linux. Puteți crea o arhivă zip sau dezarhivați fișiere dintr-una cu câteva comenzi comune ale terminalului Linux.

formatul de fișier arhivat ZIP

datorită dominanței formatului ZIP în domeniul Windows, fișierele ZIP sunt probabil cea mai comună formă de arhivă comprimată din lume.

în timp ce .gudron.fișierele gz și tar.bz2 sunt comune pe Linux, utilizatorii Windows vă vor trimite probabil o arhivă în format ZIP. Și, dacă doriți să arhivați unele fișiere și să le trimiteți unui utilizator Windows, formatul ZIP va fi cea mai ușoară și mai compatibilă soluție pentru toată lumea.

RELATED: Cum de a extrage fișiere de la un .gudron.gz sau .gudron.fișier bz2 pe Linux

zip, dezarhivați și alte utilitare

este posibil să știți deja că sistemele de operare Linux și Unix, cum ar fi macOS, au instrumente care vă permit să creați fișiere ZIP și să extrageți fișiere din ele, numitezip șiunzip. Dar există o întreagă familie de utilități conexe, cum ar fizipcloakzipdetailszipsplit șizipinfo.

publicitate

am verificat unele distribuții Linux pentru a vedea dacă au inclus aceste utilitare în instalarea standard. Toate utilitățile au fost prezente în Ubuntu 19.04, 18.10 și 18.04. De asemenea, au fost prezenți în Manjaro 18.04. Fedora 29 a inclus zipșiunzip, dar niciuna dintre celelalte utilități și acesta a fost și cazul CentOS.

pentru a instala elementele lipsă pe Fedora 29, utilizați următoarea comandă:

sudo dnf install perl-IO-Compress

comanda de instalare zip Pentru Fedora

pentru a instala elementele lipsă pe CentOS 7, utilizați următoarea comandă:

sudo yum install perl-IO-Compress

comanda zip install în Centos

advertisement

Dacă oricare dintre utilitățile ZIP lipsesc dintr-o distribuție Linux care nu a fost menționată mai sus, utilizați instrumentul de gestionare a pachetelor de distribuție Linux pentru a instala pachetul necesar.

cum se creează un fișier ZIP cu comanda zip

pentru a crea un fișier ZIP, trebuie să spunețizip numele fișierului de arhivă și ce fișiere să includeți în el. Nu trebuie să adăugați”.zip ” extensie la numele arhivei, dar nu face rău dacă faci.

pentru a crea un fișier numit source_code.zip care conține toate fișierele de cod sursă C și fișierele antet din directorul curent, utilizați această comandă:

zip source_code *.c *.h

comanda zip într-o fereastră terminal

fiecare fișier este listat ca adăugat. Se afișează numele fișierului și cantitatea de compresie care a fost realizată pe acel fișier.

ieșire din comanda zip într-o fereastră terminal

publicitate

Dacă te uiți la noua arhivă ZIP, puteți vedea că „.extensia de fișier zip ” a fost adăugată automat de zip.

ls -l source_code.zip

ls pe arhiva zip într-o fereastră de terminal

dacă nu doriți să vedeți ieșirea din zip ca fișier ZIP este creat, utilizați -q opțiune (liniștită).

zip -q source_code *.c *.h

- Q opțiune liniștită într-o fereastră terminal

inclusiv directoare în fișiere ZIP

pentru a include sub-directoare în fișierul ZIP, utilizați -r (recursiv) opțiune și să includă numele sub-directoare în fișierul ZIP-director pe linia de comandă. Pentru a crea un fișier ZIP ca înainte și pentru a include și subdirectorul arhivă, utilizați această comandă.

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

-r opțiune recursivă într-o fereastră de terminal

pentru a fi atent la persoana care va extrage fișierele din fișierul ZIP pe care îl creați, este adesea politicos să creați fișiere ZIP cu fișierele din interiorul acestuia conținute într-un director. Când persoana care primește fișierul ZIP îl extrage, toate fișierele sunt plasate perfect într-un director de pe computerul lor.

publicitate

în următoarea comandă, vom arhivawork directorul și toate subdirectoarele. Rețineți că această comandă este emisă din directorul părinte al folderului work.

zip -r -q source_code work/

zipping directorul de lucru într-o fereastră terminal

setarea nivelului de compresie

puteți seta cât de mult de compresie se aplică fișierelor, deoarece acestea sunt adăugate la arhiva ZIP. Intervalul este de la 0 la 9, cu 0 fiind nici o compresie la toate. Cu cât este mai mare compresia, cu atât este nevoie de mai mult timp pentru a crea fișierul ZIP. Pentru fișierele ZIP de dimensiuni modeste, diferența de timp nu este o penalizare semnificativă. Dar apoi, pentru fișierele ZIP de dimensiuni modeste, compresia implicită (nivelul 6) este probabil suficient de bună oricum.

pentru a obținezip pentru a utiliza un anumit nivel de compresie, treceți numărul ca opțiune pe linia de comandă, cu un „-„, astfel:

zip -0 -r -q source_code work/

-0 opțiune de compresie într-o fereastră terminal

nivelul de compresie implicit este 6. Nu este nevoie să furnizați opțiunea -6, dar nu va face rău dacă faceți acest lucru.

zip -r -q source_code work/

compresie de nivel 6 într-o fereastră de terminal

nivelul maxim de compresie este nivelul 9.

zip -9 -r -q source_code work/

-9 compresie într-o fereastră terminal

publicitate

cu selecția de fișiere și directoare fiind arhivate aici, Diferența dintre nici o compresie (nivel 0) și compresia implicit (nivel 6) este 400k. Diferența dintre compresia implicită și cel mai înalt nivel de compresie (nivelul 9) este de numai 4k.

s-ar putea să nu pară prea mult, dar pentru arhivele care conțin sute sau chiar mii de fișiere, cantitatea mică de compresie suplimentară pe fișier ar adăuga o economie de spațiu utilă.

adăugarea parolelor la fișierele ZIP

adăugarea parolelor la fișierele ZIP este ușoară. Utilizați opțiunea -e (criptare) și vi se va solicita să introduceți parola și să o reintroduceți pentru verificare.

zip -e -r -q source_code work/

adăugarea parolelor la fișierele zip într-o fereastră de terminal

cum să dezarhivați un fișier ZIP cu comanda unzip

pentru a extrage fișierele dintr-un fișier ZIP, utilizați comanda unzip și furnizați numele fișierului ZIP. Rețineți că aveți nevoie pentru a oferi „.zip ” extensie.

unzip source_code.zip

comanda unzip într-o fereastră terminal

publicitate

pe măsură ce fișierele sunt extrase, acestea sunt listate în fereastra terminal.

ieșirea dezarhivării într-o fereastră de terminal

fișierele ZIP nu conțin detalii despre proprietatea fișierului. Toate fișierele care sunt extrase au proprietarul setat la utilizatorul care le extrage.

la fel cazipunzip are o-q (liniștit) opțiune, astfel încât să nu aveți nevoie pentru a vedea lista de fișiere ca fișierele sunt extrase.

unzip -q source_code.zip

dezarhivați opțiunea-q într-o fereastră terminal

extragerea fișierelor într-un director țintă

pentru a avea fișierele extrase într-un anumit director, utilizați opțiunea -d (director) și furnizați calea către directorul în care doriți să fie extrasă arhiva.

unzip -q source_code.zip -d ./development

dezarhivați la un director țintă într-o fereastră terminal

extrageți fișiere ZIP protejate prin parolă

dacă un fișier ZIP a fost creat cu o parolă,unzip vă va cere parola. Dacă nu furnizați parola corectă, unzip nu va extrage fișierele.

unzip -q source_code.zip

dezarhivați comanda cu parolă într—o fereastră de terminal

publicitate

dacă nu vă pasă că parola dvs. este văzută de alții—nici că este stocată în istoricul comenzilor Dvs.-puteți furniza parola în linia de comandă cu -P (parolă) opțiune. (Trebuie să utilizați un capital ” P.”)

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

dezarhivarea cu opțiunea Parolă într-o fereastră terminal

excluderea fișierelor

dacă nu doriți să extrageți un anumit fișier sau grup de fișiere, utilizați opțiunea -x (exclude). În acest exemplu, dorim să extragem toate fișierele în afară de cele care se termină într-un „.h ” extensie.

unzip -q source_code.zip -x *.h

dezarhivați opțiunea excludere într-o fereastră terminal

suprascrierea fișierelor

Să presupunem că ați extras o arhivă, dar ați șters din greșeală câteva dintre fișierele extrase.

publicitate

o soluție rapidă pentru care ar fi pentru a extrage fișierele încă o dată. Dar dacă încercați să extrageți fișierul ZIP în același director ca înainte, unzip vă va solicita o decizie privind suprascrierea fișierelor. Se va aștepta la unul dintre următoarele răspunsuri.

în afară de răspunsulr (redenumire), aceste răspunsuri sunt sensibile la majuscule și minuscule.

  • y: da, suprascrie acest fișier
  • n: nu, nu suprascrie acest fișier
  • A: toate, suprascrie toate fișierele
  • N: niciunul, suprascrie niciunul dintre fișiere
  • r: redenumiți, extrageți acest fișier, dar dați-i un nume nou. Vi se va solicita un nume nou.

suprascrie solicitările într-o fereastră terminal

pentru a forțaunzip pentru a suprascrie orice fișiere existente utilizați-o (suprascrie) opțiune.

unzip -o -q source_code.zip

suprascrie opțiunea într-o fereastră terminal

cel mai eficient mod de a înlocui fișierele lipsă ar fi să aibăunzip extrage numai orice fișiere din arhiva care nu sunt în directorul țintă. Pentru aceasta, utilizați opțiunea -n (nu suprascrieți niciodată).

unzip -n source_code.zip

dezarhivați cu opțiunea-n niciodată suprascrie într-o fereastră terminal

privind în interiorul unui fișier ZIP

este adesea util și instructiv pentru a vedea o listă a fișierelor din interiorul unui fișier ZIP înainte de a extrage. Puteți face acest lucru cu opțiunea -l (arhivă listă). Este transmis prin less pentru a face ieșirea gestionabilă.

unzip -l source_code.zip | less

dezarhivați opțiunea de listare într-o fereastră terminal

publicitate

ieșirea arată directoarele și fișierele din fișierul ZIP, lungimea lor și ora și data la care au fost adăugate în arhivă. Apăsați „q”pentru a ieși din less.

listează ieșirea arhivei într-o fereastră de terminal

există și alte modalități de a arunca o privire în interiorul unui fișier ZIP care oferă diferite tipuri de informații, așa cum vom vedea.

adăugați o parolă cu comanda zipcloak

dacă ați creat un fișier ZIP, dar ați uitat să adăugați o parolă, ce puteți face? Puteți adăuga rapid o parolă la fișierul ZIP utilizând comanda zipcloak. Treceți numele fișierului ZIP pe linia de comandă. Vi se va solicita o parolă. Trebuie să verificați parola introducând-o a doua oară.

zipcloak source_code.zip

zipcloak într-o fereastră terminal

Vezi Detalii fișier cu comanda zipdetails

zipdetails comanda vă va arăta o mulțime de informații cu privire la fișierul ZIP. Singura modalitate sensibilă de a gestiona cantitatea de ieșire pe care o poate da această comandă este să o conduceți prin less .

zipdetails source_code.zip | less

comanda zipdetails într-o fereastră terminal

publicitate

rețineți că informațiile vor include nume de fișiere, chiar dacă fișierul ZIP este protejat prin parolă. Acest tip de informații sunt stocate în fișierul ZIP ca meta-date și nu fac parte din datele criptate.

ieșirea zipdetails într-o fereastră de terminal

căutați în interiorul fișierului cu comanda zipgrep

comandazipgrep vă permite să căutați în fișierele dintr-un fișier ZIP. În exemplul următor, vrem să știm ce fișiere din fișierul ZIP au textul „keyval.h ” în ele.

zipgrep keyval.h source_code.zip

comanda zipgrep într-o fereastră de terminal

putem vedea că fișiereleslang.c șigetval.c conțin șirul ” keyval.h”.De asemenea, putem vedea că există două copii ale fiecăruia dintre aceste fișiere în directoare diferite din fișierul ZIP.

Vizualizați informații cu comanda zipinfo

comandazipinfo vă oferă încă un alt mod de a privi în interiorul unui fișier ZIP. Ca și înainte, conducem ieșirea prin less.

zipinfo source_code.zip | less

comanda zipinfo într-o fereastră de terminal

de la stânga la dreapta ieșirea arată:

  • permisiunile de fișiere
  • versiunea instrumentului utilizat pentru a crea fișierul ZIP
  • Dimensiunea fișierului original
  • un descriptor de fișier (descris mai jos)
  • metoda de compresie (deflație, în acest caz)
  • datele și ștampila de timp
  • numele fișierului și orice director
publicitate

fișierul este descriptorul este alcătuit din două caractere. Primul caracter va fi un „t” sau un „b” Pentru a indica un fișier text sau binar. Dacă este o literă mare, fișierul este criptat. Al doilea caracter poate fi unul dintre cele patru caractere. Acest caracter reprezintă ce tip de meta-date este inclus pentru acest fișier: nici unul, un antet local extins, un „câmp suplimentar”, sau ambele.

  • -: dacă nu există, caracterul va fi o cratimă
  • l: dacă există un antet local extins, dar nu există un câmp suplimentar
  • x: dacă nu există un antet local extins, dar există un câmp suplimentar
  • X: dacă există un antet local extins și există un câmp suplimentar

ieșire zipinfo într-o fereastră de terminal

împărțiți fișierul cu comanda zipsplit

dacă trebuie să trimiteți fișierul ZIP altcuiva, dar există restricții de dimensiune sau probleme cu transmiterea fișierului, puteți utiliza zipsplit comanda pentru a împărți fișierul zip original într-un set de fișiere zip mai mici.

opțiunea-n (dimensiune) vă permite să setați o dimensiune maximă pentru fiecare dintre noile fișiere ZIP. În acest exemplu, împărțim fișierul source_code.zip. Nu dorim ca niciunul dintre noile fișiere ZIP să fie mai mare de 100 KB (102400 octeți).

zipsplit -n 102400 source_code.zip

comanda zipsplit dintr-o fereastră de terminal

publicitate

dimensiunea pe care o alegeți nu poate fi mai mică decât dimensiunea oricăruia dintre fișierele din fișierul ZIP.

folosind aceste comenzi, puteți crea propriile fișiere ZIP, dezarhivați fișierele ZIP pe care le primiți și puteți efectua diverse alte operații pe ele fără a părăsi vreodată terminalul Linux.

Dave McKay
Dave McKay a folosit pentru prima dată computerele când banda de hârtie perforată era în vogă și de atunci programează. După peste 30 de ani în industria IT, el este acum un jurnalist de tehnologie full-time. În timpul carierei sale, a lucrat ca programator independent, manager al unei echipe internaționale de dezvoltare software, manager de proiect de servicii IT și, cel mai recent, ca ofițer de protecție a datelor. Dave este un evanghelist Linux și avocat open source.Citește Bio complet ”