TAR

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.

Comprimeer een hele directory of een enkel bestand

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

Comprimeer meerdere mappen of bestanden tegelijk

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.

Sluit mappen en bestanden uit

In sommige gevallen wil je misschien een hele map comprimeren, maar bepaalde bestanden en mappen niet opnemen. Je kunt dit doen door een --excludeoptie 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 --excludeoptie 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

Gebruik van bzip2-compressie

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

Pak een archief uit

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 -xoptie 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 -Coptie 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 .