Articles

Hoe te zippen of Unzippen van Bestanden Van de Linux Terminal

  • Dave McKay

    @TheGurkha

  • Bijgewerkt op 28 Mei 2019, 5:15 uur EDT
Linux shell prompt
Fatmawati Achmad Zaenuri/.com

ZIP-bestanden zijn een universeel archief algemeen gebruikt op Windows, macOS, en zelfs Linux-systemen. U kunt een zip-archief maken of bestanden uitpakken van één met een aantal gangbare Linux terminal commando ‘ s.

het zip-gecomprimeerde Archiefbestandsformaat

dankzij de dominantie van het ZIP-formaat in het Windows-rijk zijn ZIP-bestanden waarschijnlijk de meest voorkomende vorm van gecomprimeerd archief in de wereld.

terwijl .teer.gz-en Tar.bz2-bestanden zijn gebruikelijk op Linux, Windows-gebruikers sturen u waarschijnlijk een archief in ZIP-formaat. En als u een aantal bestanden wilt archiveren en naar een Windows-gebruiker wilt verzenden, is het ZIP-formaat de gemakkelijkste, meest compatibele oplossing voor iedereen.

gerelateerd: hoe bestanden uit een .teer.gz or .teer.bz2-bestand op Linux

zip, unzip en Andere hulpprogramma ‘ s

u weet misschien al dat Linux en Unix-achtige besturingssystemen zoals macOS hulpmiddelen hebben waarmee u ZIP-bestanden kunt maken en bestanden daaruit kunt extraheren, genaamd zip en unzip. Maar er is een hele familie van gerelateerde hulpprogramma ‘ s zoals zipcloakzipdetailszipsplit , en zipinfo.

advertentie

we hebben een aantal Linux distributies gecontroleerd om te zien of ze deze hulpprogramma ‘ s in de standaard installatie hebben opgenomen. Alle hulpprogramma ‘ s waren aanwezig in Ubuntu 19.04, 18.10 en 18.04. Ze waren ook aanwezig in Manjaro 18.04. Fedora 29 bevatte zip en unzip, maar geen van de Andere hulpprogramma ‘ s en dat was ook het geval voor CentOS.

om de ontbrekende elementen op Fedora 29 te installeren, gebruik je het volgende commando:

sudo dnf install perl-IO-Compress

zip installatie opdracht voor Fedora

Om het installeren van de ontbrekende elementen op CentOS 7, gebruik je het volgende commando:

sudo yum install perl-IO-Compress

Zip installeren opdracht in Centos

Advertentie

Als een van de zip-hulpprogramma ‘ s ontbreken van een Linux-distributie die niet hierboven vermeld, is het gebruik dat van uw Linux-distributie is de package beheer tool te installeren pakket.

hoe een ZIP-bestand te maken met het zip-Commando

om een ZIP-bestand te maken, moet u zip de naam van het archiefbestand vertellen en welke bestanden erin moeten worden opgenomen. Je hoeft de “niet toe te voegen.zip ” uitbreiding van de Archiefnaam, maar het doet geen kwaad als je dat doet.

om een bestand met de naam source_code.zip aan te maken dat alle C-broncodebestanden en headerbestanden in de huidige map bevat, gebruikt u dit commando:

zip source_code *.c *.h

zip-commando in een terminalvenster

elk bestand wordt weergegeven als het is toegevoegd. De naam van het bestand en de hoeveelheid compressie die werd bereikt op dat bestand wordt weergegeven.

uitvoer van zip-commando in een terminalvenster

advertentie

Als u naar het nieuwe ZIP-archief kijkt, kunt u zien dat de”.zip “bestandsextensie is automatisch toegevoegd door zip.

ls -l source_code.zip

ls op zip-archief in een terminalvenster

Als u de uitvoer van zip wilt zien als het ZIP-bestand wordt aangemaakt, gebruik dan de optie -q (quiet).

zip -q source_code *.c *.h

-Q stille optie in een terminalvenster

inclusief mappen in ZIP-bestanden

om submappen in het ZIP-bestand op te nemen, gebruik de -r (recursieve) optie en neem de naam van de submap op het commando lijn. Om een ZIP-bestand aan te maken zoals voorheen en ook de submap archief op te nemen, gebruik je dit commando.

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

-R recursieve optie in een terminalvenster

om rekening te houden met de persoon die de bestanden zal uitpakken uit het ZIP-bestand dat u aan het maken bent, is het vaak beleefd om ZIP-bestanden te maken met de bestanden in een map. Wanneer de persoon die het ZIP-bestand ontvangt het extraheert, worden alle bestanden netjes in een map op hun computer geplaatst.

advertentie

in het volgende commando gaan we de work map en alle submappen archiveren. Merk op dat dit commando wordt uitgegeven vanuit de bovenliggende map van de work map.

zip -r -q source_code work/

zippen van de werkmap in een terminalvenster

instellen van het compressieniveau

u kunt instellen hoeveel compressie wordt toegepast op de bestanden als ze aan het ZIP-archief worden toegevoegd. Het bereik is van 0 tot 9, waarbij 0 helemaal geen compressie is. Hoe hoger de compressie, hoe langer het duurt om het ZIP-bestand te maken. Voor bescheiden ZIP-bestanden is het tijdsverschil geen significante straf. Maar dan, voor bescheiden formaat ZIP-bestanden, de standaard compressie (niveau 6) is waarschijnlijk toch goed genoeg.

om zip om een specifiek niveau van compressie te gebruiken, geef het nummer door als een optie op de commandoregel, met een “-“, als volgt:

zip -0 -r -q source_code work/

-0 compressieoptie in een terminalvenster

het standaard compressieniveau is 6. Er is geen noodzaak om de -6 optie op te geven, maar het zal geen kwaad doen als je dat doet.

zip -r -q source_code work/

niveau 6-compressie in een terminalvenster

het maximale compressieniveau is niveau 9.

zip -9 -r -q source_code work/

-9 compressie in een terminalvenster

advertentie

wanneer de selectie van bestanden en mappen hier wordt gearchiveerd, is het verschil tussen geen compressie (niveau 0) en de standaard compressie (niveau 6) 400K. Het verschil tussen de standaard compressie en het hoogste compressieniveau (niveau 9) is slechts 4K.

dat lijkt misschien niet veel, maar voor archieven die honderden of zelfs duizenden bestanden bevatten, zou de kleine hoeveelheid extra compressie per bestand de moeite waard zijn om ruimte te besparen.

het toevoegen van wachtwoorden aan ZIP-bestanden

het toevoegen van wachtwoorden aan ZIP-bestanden is eenvoudig. Gebruik de -e (encrypt) optie en u wordt gevraagd om uw wachtwoord in te voeren en opnieuw in te voeren voor verificatie.

zip -e -r -q source_code work/

wachtwoorden toevoegen aan zip-bestanden in een terminalvenster

een ZIP-bestand uitpakken met het unzip-Commando

om de bestanden uit een ZIP-bestand te extraheren, gebruikt u het unzip-commando en geeft u de naam van het ZIP-bestand op. Merk op dat je nodig hebt om de”.zip ” extensie.

unzip source_code.zip

het unzip-commando in een terminalvenster

advertentie

wanneer de bestanden worden geëxtraheerd, worden ze weergegeven in het terminalvenster.

uitvoer van unzip in een terminalvenster

ZIP-bestanden bevatten geen details over het eigendom van bestanden. Alle bestanden die worden uitgepakt hebben de eigenaar ingesteld op de gebruiker die ze extraheert.

net als zipunzip heeft een -q (quiet) optie, zodat u de bestandslijst niet hoeft te zien als de bestanden worden geëxtraheerd.

unzip -q source_code.zip

unzip-q optie in een terminalvenster

uitpakken van bestanden naar een doelmap

om de bestanden uit te pakken in een specifieke map, gebruik de -d (map) optie, en geef het pad naar de map u wilt dat het archief wordt geëxtraheerd in.

unzip -q source_code.zip -d ./development

unzip naar een doelmap in een terminalvenster

met wachtwoord beveiligde ZIP-bestanden uitpakken

als een ZIP-bestand is aangemaakt met een wachtwoord, zal unzip u om het wachtwoord vragen. Als u niet het juiste wachtwoord opgeeft, zal unzip de bestanden niet uitpakken.

unzip -q source_code.zip

het unzip—commando met wachtwoord in een terminalvenster

advertentie

als het u niet interesseert dat uw wachtwoord Door anderen wordt gezien—noch dat het in uw opdrachtgeschiedenis wordt opgeslagen-kunt u het wachtwoord op de opdrachtregel opgeven met -P (wachtwoord). (Je moet een hoofdletter gebruiken ” P.”)

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

unzippen met wachtwoordoptie in een terminalvenster

exclusief bestanden

Als u een bepaald bestand of een groep bestanden niet wilt uitpakken, gebruik dan de optie -x (exclude). In dit voorbeeld willen we alle bestanden extraheren, behalve de bestanden die eindigen op een “.h ” uitbreiding.

unzip -q source_code.zip -x *.h

unzip exclude-optie in een terminalvenster

overschrijven van bestanden

stel dat u een archief hebt uitgepakt maar per ongeluk enkele van de uitgepakte bestanden hebt verwijderd.

advertentie

een snelle oplossing hiervoor zou zijn om de bestanden opnieuw uit te pakken. Maar als u het ZIP-bestand probeert uit te pakken in dezelfde map als hiervoor, zal unzip u vragen om een beslissing over het overschrijven van de bestanden. Zij verwacht een van de volgende antwoorden.

behalve de r (rename) respons, zijn deze reacties hoofdlettergevoelig.

  • y: Ja, dit bestand overschrijven
  • n: nee, dit bestand niet overschrijven
  • A: All, alle bestanden overschrijven
  • N: geen, geen bestanden overschrijven
  • r: hernoemen, dit bestand uitpakken maar een nieuwe naam geven. U wordt gevraagd om een nieuwe naam.

overschrijf prompts in een terminalvenster

om unzip te forceren om bestaande bestanden te overschrijven gebruik de optie -o (overschrijven).

unzip -o -q source_code.zip

overschrijf optie in een terminalvenster

de meest efficiënte manier om de ontbrekende bestanden te vervangen zou zijn om unzip alleen bestanden in het archief te extraheren die niet in de doelmap staan. Gebruik hiervoor de optie -n (overschrijf nooit).

unzip -n source_code.zip

unzip met-n overschrijf nooit optie in een terminalvenster

kijkend naar een ZIP-bestand

Het is vaak nuttig en leerzaam om een lijst van de bestanden in een ZIP-bestand te zien voordat u het uitpakt. U kunt dit doen met de optie -l (list archive). Het wordt doorgesluisd door less om de uitvoer beheersbaar te maken.

unzip -l source_code.zip | less

unzip listing optie in een terminalvenster

advertentie

De uitvoer toont de mappen en bestanden in het ZIP-bestand, hun lengte en de tijd en datum waarop ze aan het archief zijn toegevoegd. Druk op “q”om af te sluiten van less.

lijst archiefuitvoer in een terminalvenster

er zijn andere manieren om in een ZIP-bestand te kijken die verschillende soorten informatie geven, zoals we zullen zien.

voeg een wachtwoord toe met het zipcloak Commando

Als u een ZIP-bestand hebt aangemaakt maar vergeten bent een wachtwoord toe te voegen, wat kunt u dan doen? U kunt snel een wachtwoord toevoegen aan het ZIP-bestand met het commando zipcloak. Geef de naam van het ZIP-bestand op de opdrachtregel. U wordt gevraagd om een wachtwoord. U moet het wachtwoord controleren door het een tweede keer in te voeren.

zipcloak source_code.zip

zipcloak in een terminalvenster

bekijk bestandsdetails met het commando zipdetails

het commando zipdetails toont u veel informatie over het ZIP-bestand. De enige verstandige manier om de hoeveelheid uitvoer te verwerken die dit commando kan geven, is door het door te sluizen naar less .

zipdetails source_code.zip | less

het zipdetails commando in een terminalvenster

advertentie

merk op dat de informatie bestandsnamen zal bevatten, zelfs als het ZIP-bestand beveiligd is met een wachtwoord. Dit type informatie wordt opgeslagen in het ZIP-bestand als metagegevens en maakt geen deel uit van de versleutelde gegevens.

uitvoer van zipdetails in een terminalvenster

zoeken in het bestand met de opdracht zipgrep

met de opdracht zipgrep kunt u zoeken in de bestanden in een ZIP-bestand. In het volgende voorbeeld willen we weten welke bestanden in het ZIP-bestand de tekst ” keyval.h ” in hen.

zipgrep keyval.h source_code.zip

het zipgrep commando in een terminalvenster

We kunnen zien dat de bestanden slang.c en getval.c de string ” keyval bevatten.H”.We kunnen ook zien dat er TWEE kopieën van elk van deze bestanden in verschillende mappen in het ZIP-bestand.

Bekijk informatie met het commando zipinfo

het commando zipinfo geeft u nog een andere manier om in een ZIP-bestand te kijken. Net als voorheen wordt de uitvoer doorgestuurd naar less.

zipinfo source_code.zip | less

zipinfo commando in een terminalvenster

van links naar rechts de uitvoer toont:

  • De bestandspermissies
  • de versie van het gereedschap dat wordt gebruikt om het ZIP-bestand aan te maken
  • de oorspronkelijke Bestandsgrootte
  • een bestandsdescriptor (hieronder beschreven)
  • de methode van compressie (deflatie, in dit geval)
  • de gegevens en tijdstempel
  • de naam van het bestand en elke map
advertentie

De bestandsdescriptor bestaat uit twee tekens. Het eerste teken zal een ” t “of een” b ” zijn om een tekst of binair bestand aan te geven. Als het een hoofdletter is, wordt het bestand versleuteld. Het tweede karakter kan een van de vier karakters zijn. Dit teken geeft aan welk type metagegevens er in dit bestand zit: geen, een uitgebreide lokale header, een “extra veld”, of beide.

  • -: als geen van beide bestaat, wordt het teken een koppelteken
  • l: als er een uitgebreide lokale header is maar geen extra veld
  • x: als er geen uitgebreide lokale header is maar er een extra veld
  • X: als er een uitgebreide lokale header is en er een extra veld is

zipinfo-uitvoer in een terminalvenster

het bestand splitsen met het zipsplit-Commando

Als u het ZIP-bestand naar iemand anders moet verzenden, maar er zijn groottebeperkingen of problemen met de overdracht van het bestand, kunt u zipsplit commando om het originele zip-bestand op te splitsen in een set kleinere Zip-bestanden.

met de optie -n (size) kunt u een maximale grootte instellen voor elk van de nieuwe ZIP-bestanden. In dit voorbeeld splitsen we het source_code.zip bestand. We willen niet dat een van de nieuwe ZIP-bestanden groter is dan 100 KB (102400 bytes).

zipsplit -n 102400 source_code.zip

het zipsplit commando in een terminalvenster

advertentie

De grootte die u kiest kan niet kleiner zijn dan de grootte van een van de bestanden in het ZIP-bestand.

Met deze commando ‘ s kunt u uw eigen ZIP-bestanden maken, ZIP-bestanden uitpakken die u ontvangt en diverse andere bewerkingen uitvoeren zonder ooit de Linux terminal te verlaten.Dave McKay gebruikte voor het eerst computers toen geponste papieren tape in de mode was, en sindsdien is hij aan het programmeren. Na meer dan 30 jaar in de IT-industrie, is hij nu een fulltime technologie journalist. Tijdens zijn carrière werkte hij als freelance programmeur, manager van een internationaal softwareontwikkelingsteam, IT-serviceprojectmanager en recentelijk als functionaris voor gegevensbescherming. Dave is een Linux evangelist en open source advocaat.Volledige Bio lezen ”