Ein Blog über Code, Hardware und Co

NAS, Server und Co, Programmieren und Entwickeln

tar-Dateien packen und entpacken

Zuletzt aktualisiert am 14. Januar 2023.

Oder: Die vollständige Anleitung zu Tar und Gzip und wie man Dateien damit archiviert und entpackt

Tar-Dateien werden häufig in Verbindung mit dem Gzip-Algorithmus zum Komprimieren von Daten verwendet. Diese Komprimierung ist nicht immer effektiv, kann aber hilfreich sein, wenn große Datenmengen über eine Netzwerkverbindung übertragen werden.

Wieso nutzen wir tar?
Tar ist dann sinnvoll, wenn man z.B. viele kleinere Dateien übertragen oder verschieben möchte. Es müssen so a) nicht etliche kleine Kopiervorgänge angestoßen werden und b) entfällt systemseitiger (I/O)-Overhead, der sonst bei vielen kleinen Dateioperationen anfallen würde.

Tar ist ein Befehlszeilendienstprogramm, mit dem Sie (komprimierte) Archive erstellen können. Dieser Artikel zeigt Ihnen, wie Sie tar mit der Befehlszeilenschnittstelle/Terminal verwenden.

Tar steht für Tape ARchive und wurde ursprünglich entwickelt, um Dateien in einer einzigen komprimierten Datei auf Band zu speichern. Tar-Dateien werden oft als Tarballs oder Tar-Archive bezeichnet.

Die Syntax des TAR-Befehls:

Die Grundstruktur des tar-Befehls ist wie folgt:

tar [Optionen]  [Ausgabedatei] [Eingabedatei/Verzeichnis]

Das folgende Beispiel zeigt, wie Sie mit tar ein Archiv erstellen:

tar -cvf archive.tar mein-verzeichnis/

Das gleiche Verzeichnis kann in einem Vorgang mit komprimiert werden (zusätzlicher Anhang des Parameters “z”):

tar -cvfz archive.tar mein-verzeichnis/

Die Argumente von tar im Detail

ParameterBedeutung
tarRuft das PRogramm “tar” auf.
cSteht für “create” und bedeutet, dass ein neues Archiv in einer Datei (.tar) erzeugt wird.
vSteht für “verbose” und bedeutet, dass während des Prozesses des Packens in der Konsole angezeigt wird, welches Verzeichnis/File gerade bearbeitet wird.
fSteht für “file” und bedeutet, dass die Daten in ein File gepackt und ausgegeben werden.
zSteht für diee Verwendung von “gzip” und bedeutet, dass das Ausgabearchiv mittels gzip komprimiert wird.
Tabelle 1: Die Argumente der tar-Funktion im Detail.

Anwendungsbeispiele von tar (und gzip)

Anmerkung: Tar packt Verzeichnisse und Dateien zu einem File mit der Endung .tar.
Durch das Hinzufügen des Parameters "z" wird das tar-File zusätzlich noch komprimiert.

Verzeichnisse

So packen Sie Verzeichnisse in ein tar-Archiv:

tar -cfv ausgabe.tar [verzeichnis]

Mehrere Verzeichnisse
So packen Sie mehrere Verzeichnisse in ein tar-Archiv:

tar -cfv ausgabe.tar [verzeichnis1] [verzeichnis2] [verzeichnisN]

Einzelne Dateien

So packen Sie (mehrere) einzelne Dateien in ein tar-Archiv:

tar -cfv ausgabe.tar [file1] [file2] [fileN]

Nützliche Zusatzfunktionen

Verzeichnisse oder Dateien auslassen/ignorieren

Z.B. Für Backzwecke kann es sinnvoll sein, einzelne Dateien oder Verzeichnisse aus einem tar-Package auszuklammern. Beispielsweise, wenn temporäre Dateien nicht mit gesichert werden sollen.

Das geht mit folgendem Kommando:

tar cfv archiv.tar /mein-verzeichnis -- exclude=unterordner1 -- exclude=file1.txt

In diesem Beispiel werden das Verzeichnis “unterordner1” und die Datei “file1.txt” nicht mit gepackt.

Tar-Packages mit aktuellem Datum im Dateinamen erzeugen

Besonders praktisch und häufig genutzt ist das Packen mit tar für Backups. Da Backups eine zeitliche Ebene haben, ist es hier besonders praktisch, direkt das aktuelle Datum (und/oder die Uhrzeit) in den finalen Dateinamen des Tar-Packages einzubauen.
Das geht wie folgt:

tar cfv archiv-$(date +%d.%m.%y-%R).tar /mein-verzeichnis

Wir greifen hierbei auf die Datumsvariablen des Systems bzw. der Shell zurück.

Schreibe eine Antwort