Als u door de open-sourcewereld zwerven, is de kans groot dat u regelmatig .tar.gz-bestanden tegenkomt. Open-source pakketten zijn over het algemeen beschikbaar om te downloaden in .tar.gz en .zip formaten.
Het tar
commando wordt gebruikt om tar-archieven te maken door een groep te converteren van bestanden in een archief. Het ondersteunt een breed scala aan compressieprogrammas zoals gzip, bzip2, lzip, lzma, lzop, xz en compress. Tar is oorspronkelijk ontworpen voor het maken van archieven om bestanden op magneetband op te slaan en daarom heeft het de naam “Tape ARchive”.
Gzip is het meest populaire algoritme voor het comprimeren van tar-bestanden. Volgens afspraak is de naam van een tar-archief gecomprimeerd met gzip zou moeten eindigen op .tar.gz of .tgz.
Kort gezegd, een bestand dat eindigt op .tar.gz is een .tar-archief gecomprimeerd met gzip.
Het tar
commando kan ook worden gebruikt om tar-archieven uit te pakken, een lijst weer te geven van de bestanden die in het archief zijn opgenomen, extra bestanden toe te voegen aan een bestaand archief, evenals verschillende andere soorten van bewerkingen.
In deze tutorial laten we u zien hoe u tar.gz- en tgz-archieven kunt extraheren (of unzippen).
Tar.gz-bestand #
Om een tar.gz-bestand uit te pakken, gebruik je de --extract
(-x
) optie en specificeer de archiefbestandsnaam na de optie:
Het tar
commando zal automatisch het compressietype detecteren en zal pak het archief uit. Hetzelfde commando kan worden gebruikt om tar-archieven uit te pakken die zijn gecomprimeerd met andere algoritmen zoals .tar.bz2.
Als u een desktopgebruiker bent en de opdrachtregel niet uw ding is, kunt u uw Bestandsbeheer gebruiken. Om een tar.gz-bestand uit te pakken (unzip), klikt u met de rechtermuisknop op het bestand dat u wilt uitpakken en selecteert u “Uitpakken”. Windows-gebruikers hebben een tool met de naam 7zip nodig om tar.gz-bestanden uit te pakken.
De -v
optie zal het tar
commando beter zichtbaar maken en de namen van de bestanden die worden uitgepakt op de terminal afdrukken.
Standaard zal tar
de archiefinhoud uitpakken in de huidige werkdirectory. Gebruik de --directory
(-C
) om archiefbestanden uit te pakken in een specifieke map:
Om bijvoorbeeld de archiefinhoud uit te pakken naar de /home/linuxize/files
directory, kunt u gebruiken:
Specifieke bestanden extraheren uit een tar.gz-bestand #
Om een specifieke bestand (en) uit een tar.gz-bestand, voeg een door spaties gescheiden lijst met te extraheren bestandsnamen toe na de archiefnaam:
Bij het uitpakken het dossier s, moet u hun exacte namen opgeven, inclusief het pad, zoals afgedrukt door --list
(-t
).
Extraheren een of meer mappen uit een archief is hetzelfde als het uitpakken van bestanden:
Als u een bestand probeert uit te pakken dat niet bestaat, verschijnt een soortgelijke foutmelding wordt weergegeven:
U kunt ook bestanden extraheren uit een tar.gz-bestand op basis van op een jokertekenpatroon, door de optie --wildcards
te gebruiken en het patroon te citeren om te voorkomen dat de shell het interpreteert.
Bijvoorbeeld om bestanden uit te pakken waarvan de naam eindigt op .js
(Javascript-bestanden), je zou gebruiken:
Tar.gz-bestand extraheren uit stdin #
Als je een gecomprimeerd tar.gz-bestand extraheert door het archief van stdin te lezen (meestal via een pipe), moet je de decompressie-optie specificeren. De optie die tar vertelt om de archieven te lezen via gzip is -z
.
In het volgende voorbeeld downloaden we de Blender-bronnen met behulp van de wget
commando en pipe zijn uitvoer naar het tar
commando:
Als je dat niet doet t specificeer een decompressie-optie, tar
geeft aan welke optie je moet gebruiken:
Listing tar.gz-bestand #
Om de inhoud van een tar.gz-bestand weer te geven, gebruikt u de --list
(-t
) optie:
De uitvoer zal er ongeveer zo uitzien:
Als u de --verbose
(-v
) optie, tar
zal meer informatie afdrukken, zoals eigenaar, bestandsgrootte , timestamp ..etc:
Conclusie #
tar.gz-bestand is een Tar-archief gecomprimeerd met G zip. Om een tar.gz-bestand uit te pakken, gebruik je het tar -xf
commando gevolgd door de archiefnaam.