Hoe Unzip commando gebruiken in Linux
Om te unzippen kunnen Linux-gebruikers een commandohulpprogramma gebruiken dat vergelijkbaar is met andere compressieformaten, zoals tar en gzip. Inzicht in hoe je het unzip commando gebruikt helpt bij het efficiënter uitvoeren van verschillende taken, waaronder het distribueren van software of het archiveren van gegevens.
In tegenstelling tot de twee hulpprogramma’s wordt unzip niet standaard geïnstalleerd. Het heeft ook verschillende opties om het extractiegedrag te veranderen en is geschikt voor een bepaald ontwikkelscenario.
Lees verder over hoe je unzip installeert en gebruikt om zipbestanden uit te pakken op een Linux virtual private server (VPS). We zullen ook bespreken hoe het verschilt van andere uitpakcommando’s en de best practices.
Unzip installeren
In deze sectie zullen we de stappen doorlopen om unzip te installeren in populaire Linux distributies zoals Debian en CentOS. Om de commando’s op afstand uit te voeren, maak je verbinding met je VPS met een SSH-client zoals PuTTY.
Debian afgeleiden
Voor Debian-gebaseerde besturingssystemen zoals Ubuntu gebruik je de APT package manager om unzip te installeren in Linux. Voordat je dit doet, moet je de repository bijwerken en upgraden met het volgende commando:
sudo apt update && sudo apt upgrade
Installeer vervolgens unzip met dit commando:
sudo apt install unzip
Als je een ouder besturingssysteem gebruikt, gebruik dan het volgende commando:
sudo apt-get install unzip
Afgeleiden van Red Hat Linux Enterprise (RHEL)
Commando’s voor RHEL-gebaseerde besturingssystemen zoals CentOS, AlmaLinux en Rocky Linux verschillen afhankelijk van hun versie. De oudere versies gebruiken de pakketbeheerder yum, terwijl de nieuwere versies dnf gebruiken.
Lees hun documentatie of gebruik websites zoals DistroWatch om de pakketbeheerder van je besturingssysteem te controleren. Dat gezegd hebbende, de commando’s zijn vergelijkbaar:
sudo yum update && sudo yum upgrade
sudo dnf update && sudo dnf upgrade
Ook de installatiecommando’s van het hulpprogramma unzip zijn als volgt:
sudo yum install unzip
sudo dnf install unzip
Controleer nadat het proces is voltooid of unzip met succes is geïnstalleerd met het volgende commando. Het is hetzelfde voor elke distributie:
unzip -v
Als het hulpprogramma correct is geconfigureerd, zou je opdrachtregelinterface het versienummer moeten tonen.
Bestanden in- en uitpakken in Linux
Nadat het unzip hulpprogramma is geïnstalleerd, kun je beginnen met het unzippen van bestanden op het Linux systeem. In deze sectie leggen we uit hoe je het hulpprogramma kunt gebruiken voor een aantal veelvoorkomende toepassingen.
Belangrijk! De limiet voor bestandsgrootte in het bestandssysteem kan een fout veroorzaken wanneer je een bestand uitpakt in Linux. Als je dit probleem tegenkomt, verhoog de limiet dan dienovereenkomstig.
Een bestand uitpakken
Om een bestand te unzippen in Linux gebruik je het commando met de naam van het item dat je wilt uitpakken. Vergeet niet dat het archief ook in je huidige map moet staan. Hier is een voorbeeld:
unzip archive_file.zip
Het zal de inhoud van het ZIP-archief uitpakken in de huidige werkmap als je lees- en schrijfrechten hebt.
Je kunt zipbestanden ook uitpakken in een andere map door het pad op te geven zoals met het volgende commando:
unzip path/to/the/archive_file.zip
Hoe meerdere bestanden uitpakken
Om gelijktijdig meerdere zip-bestanden in dezelfde map uit te pakken, gebruik je een jokerteken zoals hieronder:
unzip \*.zip
Het sterretje (*) staat voor een willekeurig teken. Voer bijvoorbeeld het volgende uit om archiefbestanden met vergelijkbare namen uit te pakken, zoals file-1.zip, file-2.zip, enzovoort:
unzip file-\*.zip
Wanneer je meerdere ZIP-bestanden uitpakt met een wildcard, zorg er dan voor dat je het backslash escape karakter (\) gebruikt om te voorkomen dat Terminal een archief uitpakt uit een ander.
Bestanden uitpakken naar een specifieke directory
In plaats van het cd commando te gebruiken, gebruik je de –d optie om uit te pakken naar een map op een andere locatie. Bijvoorbeeld:
unzip archive_file.zip -d /target/folder/destination
De bestemming kan absoluut of relatief zijn ten opzichte van de huidige werkmap. Als je bijvoorbeeld in de directory /target bent, voer je het volgende in om het archiefbestand naar dezelfde bestemming uit te pakken:
unzip archive_file.zip -d /directory/destination
Met deze opdracht kun je ook een bestand uitpakken van de ene locatie naar een ander mappad zonder naar een van beide te verplaatsen. De opdracht ziet er als volgt uit:
unzip /origin/path/archive_file.zip -d /target/folder/destination
Hoe gedeeltelijke extractie doen voor specifieke bestanden of mappen
Een ZIP-bestand bestaat meestal uit meerdere bestanden of mappen. In Linux kun je ervoor kiezen om een specifiek item uit te pakken door hun namen op te geven na het ZIP-archief, zoals:
unzip file_archive.zip file1.txt
Als je meerdere bestanden wilt uitpakken, geef je gewoon hun namen op na het commando. Je kunt ook een specifieke map uitpakken:
unzip file_archive.zip folder_name
Als je echter een bepaalde map of een bepaald bestand in een map wilt uitpakken, moet je het volledige pad opgeven. Als je bijvoorbeeld /path wilt uitpakken in de folder /directory, voer je in:
unzip file_archive.zip /directory/path
Je kunt ook specifieke bestanden uitsluiten van de extractie met de optie –x. We zullen bijvoorbeeld file_1.txt en file_2.txt gearchiveerd houden met deze opdracht:
unzip file_archive.zip -x file_1.txt file_2.txt
Serverbeheerders sluiten meestal bestanden uit als het archief veel inhoud heeft. Ze doen dit ook om een specifiek item gedeeltelijk bij te werken, wat het proces efficiënter maakt omdat ze niet met veel gegevens hoeven te werken.
Een zipbestand uitpakken dat met een wachtwoord is beveiligd
Als je met een wachtwoord beveiligde ZIP-bestanden uitpakt zonder de identificatiesleutel in te voeren, zal Terminal om de toegangscode vragen.
Je kunt het wachtwoord handmatig invoeren en op Enter drukken. Met het Linux unzip commando kun je de gegevens echter direct invoeren met de -p optie:
unzip -p password file_archive.zip
Dit commando maakt het uitpakken efficiënter. We raden je echter aan om deze methode te vermijden als er meerdere gebruikers op hetzelfde systeem werken, omdat gevoelige gegevens dan in de logboeken van de commando’s terechtkomen.
De -p optie is handig als je het unzip commando gebruikt in automatiseringsscripts. Hiermee kun je een met een wachtwoord beveiligd ZIP-bestand uitpakken door de referenties automatisch door te geven in plaats van ze in te voeren via de opdrachtregel.
Hoe Unzip gebruiken in automatiseringsscripts
Serverbeheerders exporteren vaak producten van processen zoals back-up of event logging als ZIP-archieven om opslagruimte te besparen. Ze moeten deze bestanden uitpakken om de gegevens voor andere doeleinden te extraheren.
Door bijvoorbeeld een ZIP log uit te pakken kun je de gebeurtenisgeschiedenis lezen of het doorgeven aan een ander commando om de gegevens te filteren. In plaats van unzip voor elk archief uit te voeren, kun je een automatiseringsscript gebruiken om hetzelfde commando eenmalig uit te voeren.
Gebruik een teksteditor zoals Nano om er een te maken. Voer de naam in met .sh als bestandsextensie zoals in het volgende voorbeeld:
sudo nano unzip_log.sh
Voer de opdracht in het bestand in. Het volgende script zal bijvoorbeeld een nieuw logbestand uitpakken in een map en automatisch de oudere verwijderen zodra ze een bepaald aantal overschrijden:
#!/bin/bash
#Log archive files location
log_archive="/path/to/logs/log_archive.zip"
#Destination for extracted files
log_destination="/path/to/extracted/logs/"
#Maximum number of log files to keep
max_logs=5
#Use the unzip command to extract files
unzip "$log_archive" -d "$log_destination"
#Log rotation
cd "$log_destination" || exit
# List and sort log files
log_files=($(ls -1t *.log))
# Check if log rotation is needed
if [ ${#log_files[@]} -gt $max_logs ]; then
# Delete files and keep the recent ones
excess_logs=$(( ${#log_files[@]} - max_logs ))
for ((i = 0; i < excess_logs; i++)); do
rm "${log_files[$i]}"
done
fi
Druk op Ctrl + X, Y en Enter om de wijzigingen op te slaan. Voer deze commando’s vervolgens uit om het script uitvoerbaar te maken en uit te voeren:
sudo chmod +x unzip_log.sh
./unzip_log.sh
Op dit moment haalt het commando alleen het logboek eruit als je het uitvoert. Om het regelmatig uit te voeren, stel je een schema in met een cronjob. Het volgende zal het script bijvoorbeeld dagelijks om 2 uur ‘s nachts uitvoeren:
0 2 * * * /path/to/unzip_log.sh
Hoe Unzip combineren met andere Linux-commando’s
Met Linux kun je verschillende hulpprogramma’s combineren om een specifieke taak in één keer uit te voeren. Dit maakt serverbeheer efficiënter omdat je de commando’s niet afzonderlijk hoeft uit te voeren.
Combineer bijvoorbeeld het unzip commando met find om meerdere archieven te vinden en ze tegelijkertijd uit te pakken. Hier is een voorbeeld:
find /path/to/zips -type f -name "*.zip" -exec unzip {} -d /path/to/destination/ \;
In de snippet zoekt het commando find ZIP-bestanden in de map /path/to/zips. Vervolgens geeft het de gevonden items door aan het unzip commando, dat door de accolades wordt weergegeven.
Je kunt ook het commando grep toevoegen om bestanden uit te pakken die een bepaald patroon bevatten. Bekijk het volgende voorbeeld:
unzip archive.zip $(unzip -l archive.zip | grep "pattern" | awk '{print $4}')
In de opdracht specificeren we de items die we uit archive.zip willen halen tussen haakjes. De -l optie geeft een lijst van alle inhoud van het ZIP-bestand, die grep zal filteren op basis van het gegeven patroon.
Vervolgens geeft de pipe (|) de items die het patroon bevatten door aan het awk commando, waarbij de vierde kolom met de bestandsnaam wordt uitgepakt.
Je kan unzip integreren met verschillende andere hulpprogramma’s die specifiek zijn voor jouw taken. Lees ons artikel over Linux commando’s en bekijk hun documentatie op GNU’s website voor meer informatie over de mogelijke combinaties.
Het Unzip commando vergelijken met alternatieve methodes
In Linux zijn er verschillende andere archief- en compressieformaten, zoals tar en tar.gz. Het tar commando laat je een archief maken zonder de bestandsgrootte te verkleinen, terwijl gzip compressie mogelijk maakt.
In tegenstelling tot het zip-commando ondersteunen deze twee programma’s standaard geen wachtwoordbeveiliging en zijn ze mogelijk niet compatibel met niet-UNIX-besturingssystemen zoals Windows.
Dit gezegd hebbende, zijn deze compressies gebruikelijker in Linux systemen omdat ze voorgeïnstalleerd zijn, en de meeste installatiepakketten komen in een tar.gz of tar bestand. Bovendien bieden deze hulpprogramma’s meer modulariteit en flexibiliteit.
Gebruik de volgende commando’s om een tar.gz of tar bestand uit te pakken:
tar -x archive.tar
gunzip archive.tar.gz
Voor desktop Linux distributies kun je ook een ZIP bestand viewer en extractor gebruiken met een grafische gebruikersinterface zoals PeaZip. Het is eenvoudiger dan de opdrachtregelinterface, maar kan inefficiënt zijn omdat je geen hulpprogramma’s kunt combineren of scriptautomatisering kunt gebruiken.
Best Practices voor het beheren van Zip-bestanden in Linux
In dit gedeelte leggen we uit hoe je ZIP-bestanden veilig en efficiënt beheert in een Linux-systeem.
Controleer de integriteit van archiefbestanden
Cybercriminelen injecteren vaak een ZIP-archief met kwaadaardige code of malware. Omdat een ZIP-bestand uit meerdere items bestaat, kunnen gebruikers meestal geen vreemde dingen opmerken, zelfs niet nadat ze de gecomprimeerde bestanden hebben uitgepakt.
Om het veiligheidsrisico te vermijden, kun je de inhoud van een ZIP-bestand oplijsten voordat je het uitpakt met de optie -l:
unzip -l downloaded_file.zip
Zorg er daarnaast voor dat de checksum van het bestand overeenkomt met die van de downloadbron om de integriteit te waarborgen. Voer hiervoor het volgende uit:
md5sum downloaded_file.zip
Gebruik ook de optie -t om de structurele consistentie van het archief te controleren:
unzip -t downloaded_file.zip
Bestaande bestanden en machtigingen behouden
Uitpakken kan bestaande bestanden met dezelfde naam op de bestemming overschrijven, wat kan leiden tot gegevensverlies. Gebruik de optie -n om unzip te dwingen reeds aanwezige items over te slaan:
unzip -n archive.zip
Je hoeft de extractie van het ZIP-bestand niet te bevestigen als hetzelfde item al bestaat in de doelmap, omdat unzip ze automatisch overslaat.
Naast het overschrijven, kunnen de machtigingen van bestanden of mappen verschillen van die in het originele ZIP-bestand na het extraheren.
Hoewel je de bestandspermissies handmatig kunt wijzigen met chmod, is dit inefficiënt als je veel bestanden uit een ZIP-archief haalt. Gebruik de optie -o om deze eigenschappen te behouden:
unzip -o archive.zip
Gebruik Kodee
Voor VPS-beginners kan het moeilijk zijn om de opdrachtregelinterface te gebruiken om bestanden uit te pakken in Linux vanwege het gebrek aan een grafische UI. Bovendien is het schrijven van automatiseringsscripts of specifieke commando’s voor bepaalde taken ingewikkeld.
Met de VPS-hosting van Hostinger kun je onze AI-assistent, Kodee, gebruiken om eenvoudig unzip-commando’s en bash-scripts te genereren met behulp van eenvoudige prompts. De uitvoer kan vervolgens worden gekopieerd en geplakt om tijd en moeite te besparen.
Voer bijvoorbeeld “Genereer een Linux unzip-commando om bestanden met het patroon ‘log’ uit te pakken uit het archive.zip-bestand naar /home/log_extract” of “Schrijf een bash-script dat automatisch een gearchiveerd log uitpakt zonder bestaande bestanden te overschrijven”.
Om het hulpprogramma te openen, klik je op VPS in het bovenste menu van hPanel en selecteer je Beheer op je plan. Navigeer naar de zijbalk → Kodee.
Conclusie
Net als tar en gunzip kun je met het unzip commando een archiefbestand uitpakken in Linux. Je moet het echter handmatig installeren via een pakketbeheerder zoals APT voor Debian of DNF voor RHEL-derivaten zoals CentOS.
Om bestanden uit te pakken, schrijf je hun naam achter het commando. Standaard pakt het de inhoud uit in je huidige map, maar je kunt een andere map opgeven met de -d optie. Bovendien kun je specifieke items uitpakken door hun namen na het archief te vermelden.
Je kunt het unzip commando gebruiken voor een specifieke taak door het te integreren in een bash script of door het te combineren met andere hulpprogramma’s. Gebruik voor het uitpakken de optie -n om ervoor te zorgen dat je geen bestaande bestanden overschrijft en controleer de inhoud van een ZIP-archief met -l om beveiligingsrisico’s te minimaliseren.
Met Hostinger kun je gewoon prompts invoeren en Kodee, onze AI-assistent, genereert dan unzip-commando’s of scripts voor jouw specifieke taken. Voer gewoon de prompts in en kopieer en plak de uitvoer in je Terminal.