Zip is een populaire platformonafhankelijke opdracht die wordt gebruikt voor het comprimeren en archiveren van gegevens. Compressie bespaart ruimte door de grootte van gegevens te verkleinen, terwijl archivering de overdracht van gegevens vergemakkelijkt door meerdere bestanden of mappen in één bestand te combineren. Overweeg, als we 5 bestanden via internet moeten overbrengen, elk met een grootte van 50 megabyte; het één voor één overzetten van alle bestanden kan lang duren. Door de bestanden te comprimeren om de grootte te verkleinen tot 25 MB, en ze vervolgens allemaal in één bestand te archiveren, zullen de bestanden veel sneller worden overgedragen dan wanneer ze niet zijn gecomprimeerd. Zip is het meest gebruikte hulpprogramma voor het archiveren en comprimeren van bestanden, terwijl unzip wordt gebruikt voor het uitpakken en decomprimeren van de gecomprimeerde bestanden.
In dit artikel zullen we kijken naar de zip- en unzip-opdrachten in Linux, samen met hun opdrachtregelopties en voorbeelden.
Vereisten
- Ubuntu- of Debian-systeem
- Zip- en unzip-hulpprogramma's geïnstalleerd
Opmerking: De opdrachten die in dit artikel worden genoemd, zijn getest op Ubuntu 20.04 LTS (Focal Fossa). Dezelfde commando's zijn ook van toepassing op Debian-distributie.
Zip en Unzip installeren
Standaard zijn zip- en unzip-pakketten geïnstalleerd in Ubuntu-systemen. Als deze ontbreken op uw systeem, kunt u ze eenvoudig installeren. Start de Terminal met behulp van het Ctrl+Alt+T-toetsenbord. Om zip vervolgens te installeren, voert u het volgende uit in Terminal:
$ sudo apt install zipVoer de onderstaande opdracht uit in Terminal om unzip te installeren:
$ sudo apt install unzipEr zijn enkele scenario's waarin u mogelijk bestanden moet zippen:
- Om opslagruimte te besparen, omdat zippen de bestandsgrootte comprimeert
- Grote bestanden overdragen via e-mail
- Bestanden sneller uploaden of downloaden
- Om bandbreedte te besparen
ZIP-opdracht in Linux
Om een zip-bestand te maken, moet u de naam van het gecomprimeerde archief en de bestanden die in de zip moeten worden opgenomen, opgeven.
$ zip-opties zip_file file1 file2…Zip enkel bestand
Een enkel bestand met de naam . zippen testbestand.tekst; naar een zipbestand met de naam test.zip, het commando zou zijn:
$ zip-test.zip-testbestand.tekst
De bovenstaande opdracht comprimeert het opgegeven bestand in de huidige map terwijl het originele bestand achterblijft.
Om te bevestigen of het zip-bestand is aangemaakt, geef je de opdracht in de Terminal hieronder:
$ ls -l
Meerdere bestanden zippen
Je kunt ook meerdere bestanden zippen met de opdracht zip. Laten we enkele bestanden maken met de naam testbestand1.tekst, testbestand2.tekst, testbestand3.tekst, en testbestand4.tekst met behulp van de volgende opdracht in de Terminal:
$ sudo touch testbestand1.txt-testbestand2.txt-testbestand3.txt-testbestand4.tekstOm deze bestanden nu in een enkel bestand te zippen, genaamd bestanden.zip, geef de volgende opdracht in de Terminal:
$ zip-bestanden.zip-testbestand1.txt-testbestand2.txt-testbestand3.txt-testbestand4.tekst
U kunt het jokerteken ook gebruiken om meerdere bestanden met dezelfde extensie op te geven. Om bijvoorbeeld alle bestanden te zippen die eindigen op .txt-extensie in een zipbestand, genaamd files1.zip, geef het volgende commando in de Terminal:
$ zip-bestanden1.zip *.tekst
Zip een bestand naar een andere map
Als u een bestand naar een andere map dan de huidige map moet zippen, gebruikt u de volgende syntaxis:
$ zip /pad/naar/map.zip_file bestandsnaamOm bijvoorbeeld te zip testbestand.tekst bestand naar Documents/docs/ directory met de naam als test.zip, het commando zou zijn:
$ zip Documenten/docs/test.zip-testbestand.tekst
Bestand toevoegen aan een bestaande zip
U kunt ook een bestand toevoegen aan een reeds bestaand zipbestand. Gebruik hiervoor de volgende syntaxis:
$ zip -u zip_file bestandsnaamLaten we zeggen dat je een zip-bestand hebt (bestanden1.zip), en u wilt nog een bestand opnemen (testbestand4.tekst) daarin zou de opdracht in dit geval zijn:
$ zip -u bestanden1.zip-testbestand4.tekst
Een bestand uit een zipbestand verwijderen
Op dezelfde manier kunt u ook een bestand verwijderen uit een reeds bestaand zipbestand. Gebruik hiervoor de volgende syntaxis:
$ zip -d zip_file bestandsnaamLaten we zeggen dat je een zip-bestand hebt (bestanden1.zip), en u wilt een bestand verwijderen (testbestand1.tekst) vanuit zou de opdracht in dit geval zijn:
$ zip -d bestanden1.zip-testbestand1.tekst
Zip-bestanden in stille modus
Als u de uitvoer van het zip-commando niet wilt weergeven, gebruikt u als volgt de optie -q (stil) met het zip-commando:
$ zip -q zip_file bestandsnaamBijvoorbeeld tijdens het zippen van testbestand.txt, kunt u de uitvoer onderdrukken met het volgende commando:
$ zip -q test.zip-testbestand.tekstIn de volgende schermafbeelding ziet u de uitvoer van de zip-opdracht die niet is weergegeven op de Terminal.
Originele bestanden verwijderen na zippen
Standaard bewaart zip het originele bestand samen met het gecomprimeerde bestand. Echter, met behulp van de -m optie met het zip-commando, u kunt de originele bestanden verwijderen nadat u hun gecomprimeerde bestand hebt gemaakt.
$ zip -m zip_file bestandsnaamDe volgende opdracht verwijdert bijvoorbeeld de testbestand.tekst na het maken van het gecomprimeerde bestand, test.zip.
$ zip -m test.zip-testbestand.tekst
Zip-mappen
Om mappen in uw Linux-systeem te zippen, gebruikt u de -r (recursieve) optie met het zip-commando. De -r optie zal de mappen recursief zippen, i.e., inclusief inhoud van submappen.
$ zip -r zip_file directorynaamOm bijvoorbeeld de . te zippen Documenten map recursief naar de test.zip bestand, zou de opdracht zijn:
$ zip -r test.zip-documenten/Met deze opdracht wordt de map Documenten gecomprimeerd, samen met alle submappen en de bestanden die erin zijn opgenomen.
Het compressieniveau instellen
U kunt ook het compressieniveau instellen dat moet worden toegepast op de bestanden die worden gecomprimeerd. Het compressieniveau varieert van 0 tot 9, waarbij 6 de standaardwaarde is, 0 de laagste waarde en 9 de hoogste compressiewaarde.
Om bijvoorbeeld alle tekstbestanden te zippen naar bestanden1.zip met de hoogste compressiewaarde zou de opdracht zijn:
$ zip -9 bestanden1.zip *.tekst
Evenzo, om alle tekstbestanden te zippen naar: bestanden2.zip de laagste compressiewaarde gebruiken -0, het commando zou zijn:
Het volgende is de uitvoer van de ls commando na het maken van de zip-bestanden. Als we de grootte van beide zip-bestanden vergelijken, kunt u bestanden zien1.zip, dat is gecomprimeerd met compressieniveau 9, heeft minder grootte in vergelijking met bestanden.zip, die is gecomprimeerd met compressieniveau 0.
Maak een met een wachtwoord beveiligd zip-bestand
U kunt ook met een wachtwoord beveiligde zip-bestanden maken met de -e optie met het zip-commando als volgt:
$ zip -e zip_file bestandsnaamDe volgende opdracht zal bijvoorbeeld alle tekstbestanden inpakken: bestanden3.zip, vraag dan om een wachtwoord. Stel een wachtwoord in en druk op Enter. Verifieer vervolgens dit wachtwoord door het opnieuw te typen en op Enter te drukken.
$ zip -e bestanden3.zip *.tekst
Wachtwoorden toevoegen aan zip-bestanden met de zipcloak
In het vorige voorbeeld hebben we een met een wachtwoord beveiligd zipbestand gemaakt. Maar wat als u een zip-bestand hebt gemaakt en bent vergeten het wachtwoord in te stellen?. Met de opdracht zipcloak kunt u op elk moment een wachtwoord voor een zipbestand instellen.
$ zipcloak zip_fileOm bijvoorbeeld een wachtwoord in te stellen voor een reeds gemaakt zipbestand met de naam bestanden.zip, het commando zou zijn:
$ zipcloak-bestanden.zipEr wordt om een wachtwoord gevraagd. Typ een wachtwoord en druk op password Enter. Verifieer vervolgens dit wachtwoord door het opnieuw te typen en op te drukken Enter.
Bekijk bestandsdetails met de opdracht zipdetails
De opdracht Zipdetails toont gedetailleerde informatie over het gecomprimeerde bestand. De informatie die wordt weergegeven, gaat over de recordstructuur in plaats van over de gecomprimeerde gegevens. Voor gedetailleerde informatie over het gezipte bestand typt u zipdetails gevolgd door de naam van het gezipte bestand, zoals hieronder weergegeven:
$ zipdetails zip_fileOm bijvoorbeeld gedetailleerde informatie over een gecomprimeerd bestand te vinden, test.zip, het commando zou zijn:
$ zipdetails-test.zipIn de uitvoer ziet u veel informatie over uw gecomprimeerde bestand.
Zoek in het bestand met de opdracht zipgrep
Met de opdracht zipgrep kunnen we zoeken naar een bepaalde tekst in bestanden in het gecomprimeerde bestand zonder het uit te pakken. Als een zipbestand met een wachtwoord is beveiligd, moet u eerst het wachtwoord ervoor invoeren enter. Gebruik de volgende syntaxis om naar tekst in het zipbestand te zoeken:
$ zipgrep-uitdrukking zip_fileOm bijvoorbeeld te zoeken naar welke bestanden in het zipbestand test.zip bevat het woord poort, het commando zou zijn:
$ zipgrep gateway-test.zipDe uitvoer is als volgt:. U kunt twee bestanden zien iplijst.tekst en iplijst binnen in de test.zip bevat het woord gateway.
Om te zoeken naar een tekst uit een specifiek bestand in het zipbestand, kunt u deze ook toevoegen:
Het volgende commando zoekt bijvoorbeeld naar het woord poort van alleen een specifiek bestand iplijst in het zip-bestand test.zip:
$ zipgrep gateway-test.zip Document/docs/iplist
Bekijk informatie met de opdracht zipinfo
De opdracht zipinfo in Linux geeft een overzicht van de bestanden in een zipbestand, samen met hun machtigingen, compressietype, oorspronkelijke grootte, datum en tijdstempel. Als u informatie over een specifiek zipbestand wilt bekijken, typt u zipinfo gevolgd door de bestandsnaam, zoals hieronder weergegeven:
$ zipinfo bestandsnaamDe volgende opdracht geeft informatie over het zipbestand weer: bestanden1.zip:
$ zipinfo-bestanden1.zip
Splits het bestand met de opdracht zipsplit
Soms is de grootte van het zip-bestand te groot dat u het niet kunt uploaden of als bijlage kunt verzenden vanwege de groottebeperkingen. Met de opdracht zipsplit kun je de zip-bestanden opsplitsen in kleinere bestanden die gemakkelijker over te zetten zijn. Om een zip-bestand te splitsen in kleinere bestanden, met een maximale grootte dan
De
Het onderstaande commando zal bijvoorbeeld splitsen test.zip in kleinere bestanden met een grootte van niet meer dan 104857600 bytes (104 MB).
$ zipsplit -n 104857600 test.zipHier is de uitvoer van de bovenstaande opdracht:. De test.zip bestand wordt opgesplitst in drie bestanden, die achtereenvolgens worden genoemd als test1.zip, test2.zip, en test3.zip, respectievelijk.
Als u de ls commando, ziet u alle drie de gesplitste zip-bestanden, samen met het originele zip-bestand.
Opmerkingen toevoegen of bekijken in een zipbestand met zipnote
Met de opdracht zipnote kunt u de opmerkingen in uw zipbestand toevoegen, bekijken en bewerken. Gebruik de volgende opdracht om opmerkingen te bekijken:
$ zipnote zip_fileVervang de zip het dossier met uw werkelijke zip-bestandsnaam.
Als er geen opmerkingen zijn, ziet u de volgende standaardweergave:
Om opmerkingen toe te voegen, moet u eerst de uitvoer van . omleiden zipnote naar het opmerkingenbestand. Gebruik hiervoor de volgende opdracht:
Om bijvoorbeeld opmerkingen toe te voegen aan bestanden1.zip, het commando zou zijn:
$ zipnote-bestanden1.zip > opmerkingenBewerk nu de opmerkingen bestand met de volgende opdracht:
$ sudo nano reactiesVoeg voor elk bestand uw opmerkingen toe boven de regels die zeggen: @ (commentaar boven deze regel),sla het bestand op en sluit het af. We hebben twee opmerkingen toegevoegd aan het opmerkingenbestand, zoals te zien is in de onderstaande schermafbeelding.
Schrijf nu de opmerkingen naar uw zip-bestand met de volgende opdracht:
In ons geval zou het commando zijn;
$ zipnote -w bestanden1.zip < commentsNu kunt u controleren of de opmerkingen zijn toegevoegd door de volgende opdracht in Terminal uit te voeren:
$ zipnote zip_file
Help bekijken
Gebruik de volgende opdracht om hulp te zien met betrekking tot de zip-opdracht:
$ zip --helpU kunt ook de man-pagina van het zip-hulpprogramma bezoeken met de volgende opdracht:
$ man zipOpdracht uitpakken in Linux
Met de unzip-opdracht kunt u eenvoudig inhoud uit een zipbestand extraheren. Gebruik de volgende syntaxis om een bestand uit te pakken:
$ unzip-opties zip_fileEnkele zip-bestanden uitpakken
Laten we zeggen test . om één zipbestand uit te pakken.zip, zou het commando zijn:
$ unzip-test.zipHet zal het bestand in de huidige map uitpakken.
Pak een bestand uit naar een andere map
U kunt een bestand ook uitpakken naar een andere map in plaats van de huidige map met de optie -d als volgt:
$ unzip zip_file -d /path/to/directoryEen zipbestand uitpakken, test.zip naar Documenten, directory, zou het commando zijn:
$ unzip-test.zip -d Documenten/
Meerdere bestanden uitpakken
Bedenk dat er meerdere zip-bestanden in een huidige map zijn die u wilt uitpakken. U kunt ze allemaal als volgt uitpakken met een enkele opdracht:
$ uitpakken '*.zip'Deze opdracht zal alle zip-bestanden uitpakken die zich in uw huidige map bevinden.
Uitvoer onderdrukken bij gebruik van unzip
Net als bij het zip-commando, kunt u de uitvoer van het unzip-commando ook verbergen met de -q optie als volgt:
$ unzip -q zip_file
Sluit bestanden uit met unzip
Als u een zip-bestand wilt uitpakken maar niet een specifiek bestand wilt uitpakken, gebruikt u de -X optie hieronder:
$ unzip zip_file -x bestandsnaamWe hebben bijvoorbeeld een zip bestandstest.zip met daarin drie bestanden. De volgende opdracht zal alle bestanden uitpakken behalve het ene bestand: verslag doen van.tekst:
$ unzip-test.zip -x rapport.tekst
Met wachtwoord beveiligde zip-bestanden uitpakken
Om een met een wachtwoord beveiligd zip-bestand uit te pakken zonder te vragen, gebruik je -P optie, gevolgd door het wachtwoord voor het bestand:
$ uitpakken -PWe hebben bijvoorbeeld een zip-bestand, test.zip, die wordt beschermd door het wachtwoord “blik”. Om dit bestand uit te pakken, zou de opdracht zijn:
$ unzip -P tin test.zip
Zip-bestanden overschrijven
Als u een bestand uitpakt naar een locatie waar de uitgepakte bestanden al bestonden, wordt u gevraagd om: het huidige bestand te overschrijven, het uitpakken van het huidige bestand over te slaan, alle bestanden te overschrijven, het uitpakken van alle bestanden over te slaan of de naam van het bestand te wijzigen.
Om alle bestaande bestanden te overschrijven zonder te vragen, gebruik je de -O optie als volgt:
Lijst van de inhoud van een zip
De ... gebruiken -ik optie met het unzip-commando, kunt u de inhoud van een zipbestand weergeven zonder het uit te pakken.
$ unzip -l zip_fileVoorbeeld:
$ unzip -l test.zipHet volgende is de uitvoer van de bovenstaande opdracht die de bestanden in het zipbestand weergeeft: test.zip, samen met hun namen, oorspronkelijke bestandsgrootte, datum en tijdstempels.
Uitgebreide informatie bekijken
Als u uitgebreide informatie wilt bekijken zonder het zipbestand uit te pakken, gebruikt u de optie -v als volgt:
$ unzip -v zip_fileVoorbeeld:
$ unzip -v test.zipHet volgende is de uitvoer van de bovenstaande opdracht die de bestanden vermeldt die zich in de test.zip, samen met hun namen, oorspronkelijke bestandsgrootte, gecomprimeerde grootte, compressiemethode, compressieverhouding, datum en tijdstempels.
Controleren op fouten in een archief
Met de optie -t in het unzip-commando kun je controleren of een zip-bestand geldig is en geen fouten bevat.
$ unzip -t test1.zipVoorbeeld:
$ unzip -t test1.zipDe bovenstaande opdracht controleert op fouten in de test1.zip bestand en geeft resultaten weer. De volgende uitvoer laat zien dat er geen fout is in het gecomprimeerde bestand:.
Help bekijken
Gebruik de volgende opdracht om hulp te zien met betrekking tot de opdracht unzip:
$ uitpakken --helpU kunt ook de man-pagina van het unzip-hulpprogramma bezoeken met de volgende opdracht:
$ man uitpakkenConclusie
Dat is alles wat u moet weten om zip- en unzip-commando's in Linux onder de knie te krijgen. In dit artikel hebben we het gebruik van zip- en unzip-opdrachten in Linux in detail besproken, samen met verschillende opdrachtregelopties en voorbeelden.