Het tar-commando op Linux wordt vaak gebruikt om .tar.gz- of .tgz-archiefbestanden te maken, ook wel "tarballs" genoemd. Dit commando heeft een groot aantal opties, maar je hoeft maar een paar letters te onthouden om snel archieven met tar te maken. Het tar-commando kan ook de resulterende archieven extraheren.
Het tar-commando dat bij Linux-distributies wordt geleverd, heeft geïntegreerde compressie. Het kan een .tar-archief maken en het vervolgens comprimeren met gzip- of bzip2-compressie in een enkele opdracht. Daarom is het resulterende bestand een .tar.gz-bestand of .tar.bz2-bestand.
Deze extensies geven aan met wat het archief bestand is gemaakt en maakt het voor ons leesbaar om het dan op de juiste manier weer uit te pakken. Dus extensies zijn bij archief bestanden belangrijk.
Gebruik de volgende opdracht om een volledige map of een enkel bestand op Linux te comprimeren. Het comprimeert ook elke andere map in een map die je opgeeft, met andere woorden, het werkt recursief.
tar -czvf naam-van-archief.tar.gz /pad/naar/map-of-bestand
Dit is wat die schakelaars eigenlijk betekenen:
Stel dat je een directory met de naam "spullen" in de huidige directory hebt en je deze wilt opslaan in een bestand met de naam archive.tar.gz. Hiervoor zou je de volgende opdracht kunnen uitvoeren:
tar -czvf archive.tar.gz spullen
Of, laten we zeggen dat er een directory is op /usr/local/something op het huidige systeem en je wilt het comprimeren naar een bestand met de naam archive.tar.gz. Nu geven we het absolute pad op, vanaf de root directory tot het bestand/map. Je zou hiervoor de volgende opdracht kunnen uitvoeren:
tar -czvf archive.tar.gz /usr/local/something
Hoewel tar vaak wordt gebruikt om een enkele map te comprimeren, kun je het ook gebruiken om meerdere mappen, meerdere individuele bestanden of beide te comprimeren. Geef een lijst met bestanden of mappen op in plaats van een enkele. Stel dat je bijvoorbeeld de map /home/ubuntu/Downloads, de map /usr/local/stuff en het bestand /home/ubuntu/Documents/notes.txt wilt comprimeren. Je voert hiervoor de volgende opdracht uit:
tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt
Maak een lijst van zoveel mappen of bestanden als je een back-up wilt maken.
In sommige gevallen wil je misschien een hele map comprimeren, maar bepaalde bestanden en mappen niet opnemen. Je kunt dit doen door een --exclude
optie toe te voegen voor elke map of elk bestand dat je wilt uitsluiten.
Stel dat je bijvoorbeeld /home/ubuntu wilt comprimeren, maar dat je de mappen /home/ubuntu/Downloads en /home/ubuntu/.cache niet wilt comprimeren. Hier is hoe je het zou kunnen doen:
tar -czvf archive.tar.gz /home/ubuntu --exclude=/home/ubuntu/Downloads --exclude=/home/ubuntu/.cache
De --exclude
optie is erg krachtig. Het accepteert geen namen van mappen en bestanden, het accepteert eigenlijk patronen. Je kunt er nog veel meer mee doen. Je kunt bijvoorbeeld een volledige map archiveren en alle .mp4-bestanden uitsluiten met de volgende opdracht:
tar -czvf archive.tar.gz /home/ubuntu --exclude=*.mp4
Hoewel gzip-compressie het vaakst wordt gebruikt om .tar.gz- of .tgz-bestanden te maken, ondersteunt tar ook bzip2-compressie. Hiermee kun je bzip2-gecomprimeerde bestanden maken, vaak genaamd .tar.bz2, .tar.bz of .tbz-bestanden. Om dit te doen, vervang je gewoon de -z voor gzip in de commando's hier door een -j voor bzip2.
Gzip is sneller, maar comprimeert over het algemeen iets minder, dus je krijgt een wat groter bestand. Bzip2 is langzamer, maar comprimeert iets meer, dus je krijgt een wat kleiner bestand. Gzip komt ook vaker voor, sommige uitgeklede Linux-systemen hebben standaard gzip-ondersteuning, maar geen bzip2-ondersteuning. Over het algemeen zijn gzip en bzip2 praktisch hetzelfde en zullen beide op dezelfde manier werken.
In plaats van het eerste voorbeeld dat we hebben gegeven voor het comprimeren van de spullen-map, zou je bijvoorbeeld de volgende opdracht uitvoeren:
tar -cjvf archive.tar.bz2 spullen
Als je eenmaal een archief hebt, kun je het extraheren/uitpakken met het tar-commando. Met de volgende opdracht wordt de inhoud van archive.tar.gz uitgepakt naar de huidige directory.
tar -xzvf archive.tar.gz
Het is hetzelfde als de opdracht voor het maken van archieven die we hierboven hebben gebruikt, behalve dat de -x
optie de schakelaar vervangt -c
. Dit geeft aan dat je met -x optie een archief uitpakt in plaats van een maken.
Mogelijk wil je de inhoud van het archief uitpakken naar een specifieke map. Je kunt dit doen door de -C
optie aan het einde van de opdracht toe te voegen. Met de volgende opdracht wordt bijvoorbeeld de inhoud van het bestand archive.tar.gz uitgepakt naar de directory /tmp.
tar -xzvf archive.tar.gz -C /tmp
Als het bestand een met bzip2 gecomprimeerd bestand is, vervang je de "z" in de bovenstaande opdrachten door een "j".
De hierboven gedemonstreerde opties van tar zijn er slecht een paar, maar wel de meest gebruikte opties. Gebruik --help om te zien wat tar nog meer kan.
Als je een grafische Linux-desktop gebruikt, kun je ook het hulpprogramma voor bestandscompressie of bestandsbeheer gebruiken dat bij je bureaublad is geleverd om .tar-bestanden te maken of uit te pakken. In Windows kun je .tar-archieven uitpakken en maken met het gratis hulpprogramma 7-Zip .