Archieven en Compressie

← Terug naar overzicht

tar - Archiveren

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.

Oefening 1

Toon alle bestanden die zich in de map /home/user/Documents bevinden.

Jouw commando:

Oefening 2

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.

Jouw commando:

Oefening 3

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.

Jouw commando:

Oefening 4

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.

Jouw commando:

Oefening 5

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 &&.

Jouw commando:

Compressie

Tar bundelt bestanden, maar comprimeert ze niet. Daarvoor heb je een compressie-tool nodig. De twee meest gebruikte zijn:

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.

Oefening 1

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.

Jouw commando:

Oefening 2

Je hebt het gecomprimeerde bestand /home/user/Documents/readme.txt.gz ontvangen en wilt het terugbrengen naar zijn originele, ongecomprimeerde vorm.

Jouw commando:

Oefening 3

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.

Jouw commando:

Oefening 4

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.

Jouw commando:

Oefening 5

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.

Jouw commando:

Oefening 6

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.

Jouw commando:

zip en unzip

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.

Oefening 1

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.

Jouw commando:

Oefening 2

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.

Jouw commando:

Oefening 3

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.

Jouw commando:

Oefening 4

Pak het archief docs.zip uit, maar niet in de huidige map. De bestanden moeten terechtkomen in /tmp/zip_backup.

Jouw commando:

Oefening 5

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.

Jouw commando:

Samenvatting

In dit hoofdstuk heb je geleerd hoe je bestanden kunt archiveren en comprimeren in Linux:

tar -- Archiveren:

Compressie:

zip en unzip: