Bestanden comprimeren en extraheren met het tar-commando op Linux

  • Chris Hoffman

    @chrisbhoffman

  • 10 april 2016 , 06:40 uur EDT

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 GNU tar-commando dat bij Linux wordt geleverd distributions 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.

Comprimeer een hele directory of een enkel bestand

Gebruik de volgende opdracht om een volledige directory of een enkel bestand op Linux te comprimeren. Het comprimeert ook elke andere directory in een door jou opgegeven directory, met andere woorden , het werkt recursief.

tar -czvf name-of-archive.tar.gz /path/to/directory-or-file

Dit is wat die schakelaars eigenlijk betekenen:

  • -c: maak een archief.
  • -z: Comprimeer het archief met gzip.
  • -v: Toon de voortgang in de terminal tijdens het aanmaken van het archief, ook bekend als de “uitgebreide” modus. De v is altijd optioneel in deze opdrachten, maar het is nuttig.
  • -f: Hiermee kunt u de bestandsnaam van het archief specificeren.
Advertentie

Stel dat u een directory met de naam “stuff” in de huidige directory hebt en u deze wilt opslaan in een bestand met de naam archive.tar.gz. U zou het volgende commando uitvoeren:

tar -czvf archive.tar.gz stuff

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. Je zou het volgende commando uitvoeren :

tar -czvf archive.tar.gz /usr/local/something

Comprimeer meerdere mappen of bestanden tegelijk

GERELATEERD: Bestanden beheren vanaf de Linux Terminal: 11 commandos die je moet Weet

Hoewel tar vaak wordt gebruikt om een enkele map te comprimeren, kunt u het ook gebruiken om meerdere mappen, meerdere individuele bestanden of beide te comprimeren. Geef gewoon een lijst met bestanden of mappen op in plaats van een enkele. Stel dat u het / home / ubuntu / Do wnloads directory, de / usr / local / stuff directory en het /home/ubuntu/Documents/notes.txt bestand. U zou gewoon het volgende commando uitvoeren:

tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt

Geef gewoon zoveel mappen of bestanden op als u een back-up wilt maken.

Uitsluiten Mappen en bestanden

In sommige gevallen wilt u misschien een hele map comprimeren, maar bepaalde bestanden en mappen niet opnemen. U kunt dit doen door een --exclude -schakelaar toe te voegen voor elke map of elk bestand dat u wilt uitsluiten.

Advertentie

Laten we bijvoorbeeld zeggen u wilt / home / ubuntu comprimeren, maar u wilt de mappen / home / ubuntu / Downloads en /home/ubuntu/.cache niet comprimeren. Hier is hoe je het zou doen:

tar -czvf archive.tar.gz /home/ubuntu --exclude=/home/ubuntu/Downloads --exclude=/home/ubuntu/.cache

De --exclude schakelaar is erg krachtig. Het vereist geen namen van mappen en bestanden, het accepteert eigenlijk patronen. U kunt er nog veel meer mee doen. U kunt bijvoorbeeld een hele map archiveren en alle .mp4-bestanden uitsluiten met het volgende commando:

tar -czvf archive.tar.gz /home/ubuntu --exclude=*.mp4

Gebruik in plaats daarvan bzip2-compressie

Hoewel gzip-compressie het vaakst wordt gebruikt om .tar.gz- of .tgz-bestanden te maken, ondersteunt tar ook bzip2-compressie. Hiermee kunt u 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 commandos hier door een -j voor bzip2.

Advertentie

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, met sommige uitgeklede Linux-systemen inclusief standaard gzip-ondersteuning, maar geen bzip2-ondersteuning. In het algemeen zijn gzip en bzip2 echter praktisch hetzelfde en zullen beide op dezelfde manier werken.

Bijvoorbeeld, in plaats van het eerste voorbeeld dat we hebben gegeven voor het comprimeren van de stuff-directory, zou je het volgende commando uitvoeren:

tar -cjvf archive.tar.bz2 stuff

Een archief uitpakken

Als je eenmaal een archief hebt, kun je het uitpakken met het tar-commando. Met het volgende commando wordt de inhoud van archive.tar.gz uitgepakt naar de huidige directory.

tar -xzvf archive.tar.gz

Het is hetzelfde als het commando voor het maken van archieven dat we hierboven hebben gebruikt, behalve de -x -schakelaar vervangt de -c -schakelaar. Dit geeft aan dat u een archief wilt uitpakken in plaats van er een te maken.

Advertentie

Misschien wilt u de inhoud van het archief uitpakken in een specifieke map. U kunt dit doen door de schakelaar -C 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 bzip2-gecomprimeerd bestand is, vervang dan de “z” in de bovenstaande opdrachten door een “j”.

Dit is het eenvoudigst mogelijke gebruik van het tar-commando. De opdracht bevat een groot aantal extra opties, dus we kunnen ze hier onmogelijk allemaal vermelden. Voor meer informatie. voer het info tar-commando uit in de shell om de gedetailleerde informatiepagina van het tar-commando te bekijken. Druk op de q-toets om de informatiepagina te verlaten als je klaar bent. U kunt de handleiding van tar ook online lezen.

Als u een grafische Linux-desktop gebruikt, kunt u ook het hulpprogramma voor bestandscompressie of bestandsbeheer gebruiken dat bij uw desktop is geleverd om .tar-bestanden te maken of uit te pakken. Op Windows kun je .tar-archieven uitpakken en maken met het gratis hulpprogramma 7-Zip.

Chris Hoffman
Chris Hoffman is hoofdredacteur van How-To Geek. Hij schrijft al bijna een decennium over technologie en was twee jaar columnist bij PCWorld. Chris heeft geschreven voor The New York Times, is geïnterviewd als technologie-expert op tv-stations zoals Miami s NBC 6, en zijn werk werd gedekt door nieuwsuitzendingen zoals de BBC. Sinds 2011 heeft Chris meer dan 2.000 artikelen geschreven die meer dan 500 miljoen keer zijn gelezen — en dat is gewoon hier bij How-To Geek.Read Full Bio “

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *