Linux / Befehl tar: Archive erstellen und extrahieren

`tar bündelt mehrere Dateien und Verzeichnisse in ein einzelnes Archiv oder extrahiert sie. .tar ist selbst kein Komprimierungsformat, kann aber mit gzip, bzip2 oder xz` kombiniert werden, um komprimierte Archive zu erstellen.

tar-Befehl

Ein Archiv ist ein Bündel, das Dateinamen und Verzeichnisstruktur enthält. In GNU tar ist `-c zum Erstellen, -t zum Auflisten, -x zum Extrahieren vorgesehen, und der Archivdateiname folgt -f. -z wird mit gzip, -j mit bzip2 und -J` mit xz-Komprimierung verwendet. Das Überprüfen der Liste und des Ziels vor der Extraktion kann helfen, zu verhindern, dass Dateien in unerwarteten Pfaden entpackt werden.

Grundlegende Syntax

tar [action] [option] -f archive [file or directory...]

Die installierte Implementierung und die Optionen können je nach Distribution variieren. Überprüfen Sie die Dokumentation des aktuellen Systems mit `man tar`.

Beispiele

Erstellen eines gzip-komprimierten Archivs

Dies bündelt den Inhalt von `project/ zusammen mit seiner Verzeichnisstruktur. Wenn project.tar.gz` bereits existiert, kann es überschrieben werden.

tar -czf project.tar.gz project/

Die Liste vor dem Extrahieren überprüfen

Um den Extraktionsort und die Dateinamen festzulegen, listen Sie zuerst die Mitglieder auf.

tar -tzf project.tar.gz

In das angegebene Verzeichnis extrahieren

Erstellen Sie zuerst restore/ und extrahieren Sie dann darin. Stellen Sie sicher, dass es nicht mit bestehenden Dateien überschneidet.

mkdir -p restore
tar -xzf project.tar.gz -C restore/

Überprüfen des Inhalts eines Archivs

tar kombiniert mehrere Dateien zu einem einzelnen Archiv. Das folgende Beispiel erstellt kleine Dateien, bündelt sie und listet die Mitglieder auf, ohne sie zu extrahieren.

printf 'hello\n' > note.txt
tar -cf bundle.tar note.txt
tar -tf bundle.tar

Beispielausgabe:

note.txt

-c dient zum Erstellen, -t zum Auflisten und -f gibt die Archivdatei an. .tar bedeutet selbst keine Kompression, und eine separate Kompression kann mit -z, -J usw. angewendet werden. Bevor man ein Archiv aus einer nicht vertrauenswürdigen Quelle entpackt, sollte überprüft werden, ob die internen Pfade absolute Pfade oder Verweise auf übergeordnete Verzeichnisse enthalten, und man sollte es in einem separaten Arbeitsverzeichnis extrahieren.

Hauptoptionen und Format

Optionen/Format Beschreibung
-c / -t / -x Wählen Sie eine der Aktionen: erstellen, auflisten oder extrahieren.
-f file Geben Sie die Archivdatei an, die gelesen oder geschrieben werden soll.
-z / -j / -J Verwenden Sie jeweils gzip-, bzip2- oder xz-Kompression.
-C directory Ändern Sie das Arbeitsverzeichnis.
-v Zeigen Sie die Namen der verarbeiteten Dateien an.

Vorsichtsmaßnahmen bei der Verwendung

Extrahieren Sie ein nicht vertrauenswürdiges Archiv nicht direkt mit Administratorrechten. Überprüfen Sie zuerst die Dateinamen der Zieldateien, symbolische Links und die Möglichkeit, vorhandene Dateien zu überschreiben, und verwenden Sie ein isoliertes leeres Verzeichnis. Wenn Sie ein bestehendes Archiv mit tar -cf neu erstellen, schreibt es ein neues Archiv statt Inhalte anzuhängen, sodass die vorhandenen Inhalte verloren gehen können.

Häufig gestellte Fragen

Was ist der Unterschied zwischen tar und gzip?

tar bündelt mehrere Dateien und Verzeichnisse in einer, während gzip einen Datenstrom komprimiert. tar -czf ist ein Befehl, der beide Funktionen kombiniert.

Offizielle Dokumentation

Das genaue Verhalten der Optionen und Unterschiede zwischen den Implementierungen kann in der offiziellen tar-Dokumentation nachgelesen werden.