Cum să Zip sau dezarhivați fișierele de pe terminalul Linux
- Dave McKay
@TheGurkha
- actualizat 28 Mai 2019, 5:15pm EDT
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 fizipcloak
zipdetails
zipsplit
șizipinfo
.
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
pentru a instala elementele lipsă pe CentOS 7, utilizați următoarea comandă:
sudo yum install perl-IO-Compress
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
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.
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
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
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
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.
î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/
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/
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/
nivelul maxim de compresie este nivelul 9.
zip -9 -r -q source_code work/
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/
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
pe măsură ce fișierele sunt extrase, acestea sunt listate în fereastra 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 cazip
unzip
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
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
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
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
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
suprascrierea fișierelor
Să presupunem că ați extras o arhivă, dar ați șters din greșeală câteva dintre fișierele extrase.
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.
pentru a forțaunzip
pentru a suprascrie orice fișiere existente utilizați-o
(suprascrie) opțiune.
unzip -o -q source_code.zip
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
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
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
.
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
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
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.
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
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
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
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
î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
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 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 ”
Leave a Reply