Het commando tar (tape archive) is de standaard manier om meerdere bestanden en mappen te bundelen in een enkel archiefbestand. Een tar-archief wordt ook wel een tarball genoemd.
De belangrijkste opties van tar:
| Optie | Betekenis |
|-------|-----------|
| -c | Create -- maak een nieuw archief |
| -x | Extract -- pak een archief uit |
| -t | List -- toon de inhoud van een archief |
| -v | Verbose -- toon details tijdens het proces |
| -f | File -- geef de naam van het archiefbestand op |
Een tar-archief maak je met tar -cvf archief.tar bestanden.... De optie -f moet altijd gevolgd worden door de bestandsnaam van het archief.
Toon alle bestanden die zich in de map /home/user/Documents bevinden.
Je wilt de volledige map /home/user/Documents bundelen in een enkel archiefbestand genaamd documenten.tar. Maak dit archief aan in je home-directory (/home/user), zodat je later eenvoudig een back-up hebt van al je documenten. Zorg dat je tijdens het proces kunt zien welke bestanden worden toegevoegd.
Je hebt een archiefbestand documenten.tar ontvangen en wilt weten wat erin zit, zonder het daadwerkelijk uit te pakken. Toon de volledige inhoud van het archief.
Je wilt het archief documenten.tar uitpakken op een andere locatie, namelijk in /tmp/uitpak. De doelmap bestaat nog niet, dus die moet je eerst aanmaken. Pak vervolgens het archief daar uit.
Voer de volgende twee stappen uit in een enkele commandoregel: (1) bundel de map /home/user/projects/website in een archiefbestand genaamd website.tar, en (2) pak dat archief vervolgens uit in /tmp/test. Combineer beide stappen met &&.
Tar bundelt bestanden, maar comprimeert ze niet. Daarvoor heb je een compressie-tool nodig. De twee meest gebruikte zijn:
.gz).bz2)Je kunt compressie los toepassen op bestanden, of direct combineren met tar:
| Commando | Betekenis |
|----------|-----------|
| gzip bestand | Comprimeer bestand (wordt bestand.gz) |
| gunzip bestand.gz | Decomprimeer bestand |
| bzip2 bestand | Comprimeer bestand (wordt bestand.bz2) |
| bunzip2 bestand.bz2 | Decomprimeer bestand |
| tar -czvf archief.tar.gz map | Maak gecomprimeerd tar-archief met gzip |
| tar -cjvf archief.tar.bz2 map | Maak gecomprimeerd tar-archief met bzip2 |
| tar -xzvf archief.tar.gz | Pak gzip tar-archief uit |
| tar -xjvf archief.tar.bz2 | Pak bzip2 tar-archief uit |
Let op: gzip en bzip2 vervangen het originele bestand door de gecomprimeerde versie. Het origineel verdwijnt dus.
Het bestand /home/user/Documents/readme.txt neemt te veel ruimte in. Comprimeer dit bestand met de snelle, standaard compressiemethode zodat het een .gz extensie krijgt.
Je hebt het gecomprimeerde bestand /home/user/Documents/readme.txt.gz ontvangen en wilt het terugbrengen naar zijn originele, ongecomprimeerde vorm.
Het bestand /home/user/Documents/notes.md moet zo klein mogelijk worden. Comprimeer het met een methode die een betere compressieverhouding biedt dan de standaard snelle methode, ook al duurt het iets langer.
Je wilt de map /home/user/Documents bundelen in een enkel archiefbestand en tegelijkertijd comprimeren met de snelle compressiemethode. Het resultaat moet docs.tar.gz heten. Werk vanuit /home/user.
Maak een gebundeld en gecomprimeerd archiefbestand van de map /home/user/projects/website. Gebruik de compressiemethode met de beste compressieverhouding. Het resultaat moet website.tar.bz2 heten. Werk vanuit /home/user.
Je hebt het gecomprimeerde archief docs.tar.gz in /home/user en wilt de inhoud terugzetten in /tmp/docs_backup. Maak de doelmap aan als die nog niet bestaat en pak het archief daar uit.
Naast tar en gzip/bzip2 is het zip-formaat ook veelgebruikt, vooral voor uitwisseling met Windows-systemen. Het zip-commando combineert archivering en compressie in een stap.
| Commando | Betekenis |
|----------|-----------|
| zip archief.zip bestand1 bestand2 | Maak een zip met bestanden |
| zip -r archief.zip map | Maak een zip van een hele map (recursief) |
| unzip archief.zip | Pak een zip uit in de huidige map |
| unzip archief.zip -d /doelmap | Pak een zip uit in een specifieke map |
| unzip -l archief.zip | Toon de inhoud zonder uit te pakken |
Let op: bij zip moet je de optie -r (recursive) gebruiken als je een hele map wilt inpakken, anders worden submappen niet meegenomen.
Je collega op Windows heeft je gevraagd om het bestand /home/user/Documents/readme.txt te delen in een formaat dat hij direct kan openen. Maak een archief genaamd readme.zip dat dit bestand bevat. Werk vanuit /home/user.
Je wilt de volledige map /home/user/Documents, inclusief alle submappen en bestanden, archiveren in een bestand genaamd docs.zip. Werk vanuit /home/user. Zorg dat ook de inhoud van eventuele submappen wordt meegenomen.
Je hebt het archief docs.zip ontvangen en wilt weten wat erin zit voordat je het uitpakt. Toon een overzicht van de inhoud zonder het archief daadwerkelijk uit te pakken.
Pak het archief docs.zip uit, maar niet in de huidige map. De bestanden moeten terechtkomen in /tmp/zip_backup.
Voer de volgende twee stappen uit in een enkele commandoregel: (1) archiveer de volledige map /home/user/projects/website (inclusief submappen) in project.zip, en (2) toon daarna een overzicht van wat er in het archief zit. Werk vanuit /home/user en gebruik && om de stappen te combineren.
In dit hoofdstuk heb je geleerd hoe je bestanden kunt archiveren en comprimeren in Linux:
tar -- Archiveren:
tar -cvf archief.tar bestanden -- maak een archieftar -tvf archief.tar -- bekijk de inhoud van een archieftar -xvf archief.tar -- pak een archief uit-C /doelmap -- geef een doelmap op bij het uitpakkenCompressie:
gzip / gunzip -- snelle compressie (.gz)bzip2 / bunzip2 -- betere compressie (.bz2)tar -czvf -- tar + gzip in een stap (.tar.gz)tar -cjvf -- tar + bzip2 in een stap (.tar.bz2)zip en unzip:
zip archief.zip bestanden -- maak een zip-archiefzip -r archief.zip map -- maak recursief een zip van een mapunzip archief.zip -- pak een zip uitunzip -l archief.zip -- bekijk de inhoudunzip archief.zip -d /doelmap -- pak uit in een specifieke map