So komprimieren und entpacken Sie Dateien unter Linux mit den Befehlen „tar“ und „gzip“
Die Dateikomprimierung ist ein effizientes Mittel zur Übertragung von Dateien zwischen verschiedenen Computern und Servern. Linux-Administratoren führen regelmäßig Aufgaben wie das Archivieren, Komprimieren und Entpacken von Dateien durch. Ein Archiv ist eine einzelne Datei, die mehrere Dateien oder Verzeichnisse enthält. Falls Sie bereits auf tar-Dateien mit den Endungen .tar, .tar.gz, .xz oder .bz2 gestoßen sind, stammen diese wahrscheinlich aus dem Dienstprogramm .tar.
Diese Archive sparen Speicherplatz auf lokalen Laufwerken und erleichtern das Herunterladen aus dem Internet. Sobald ein Archiv heruntergeladen wurde, können Benutzer Entpackungsprogramme verwenden, um die Dateien auf ihren Systemen zu extrahieren. Linux-Distributionen bieten verschiedene Befehlszeilen-Dienstprogramme an, insbesondere solche, die den Befehl „tar gzip“ nutzen, um große Archive effizient zu komprimieren oder zu extrahieren.
Dieser Leitfaden veranschaulicht die Funktionsweise der Befehle „tar“ und „gzip“ zum Archivieren, Komprimieren und Entpacken von Dateien auf Linux-Systemen. Hier verwenden wir die Linux-Distribution Ubuntu 22.04, um alle Befehle zu implementieren und auszuführen.
Was ist „tar“?
tar steht für „Tape Archive“ und ist ein weit verbreitetes Befehlszeilen-Dienstprogramm zur Dateikomprimierung. Es wird zum Komprimieren und Entpacken von Archiven verwendet.
Komprimierte Archive enthalten mehrere Dateien und Verzeichnisse, die durch Dateiendungen wie .tar, .tar.gz, .xz oder .bz2 gekennzeichnet sind und als „Tarballs“ bezeichnet werden. Unter Linux können Entwickler Quellcode und wichtige Dateien über tar.gz-Dateien verteilen. Darüber hinaus können Sie mit den Dienstprogrammen tar, gzip und bzip2 Dateien in verschiedene Formate komprimieren und dekomprimieren.
Was ist gzip?
gzip ist ein verlustfreies Komprimierungsprogramm für Linux, das auf einem einzigen Dateistrom basiert und zum gleichzeitigen Komprimieren und Entpacken von Dateien verwendet wird. Es unterstützt sowohl die Befehlszeile als auch grafische Benutzeroberflächen und bietet somit vielseitige Einsatzmöglichkeiten.
Zu den wichtigsten Funktionen des gzip-Dienstprogramms gehören die gleichzeitige Komprimierung mehrerer Dateien, die Ausführung über das Terminal, die Verwendung der Algorithmen LZ77 und Lempel–Ziv–Welch, die Verkürzung langer Dateinamen sowie die automatische Generierung der Dateiendung .gz. Insgesamt erweist sich gzip als robuste und benutzerfreundliche Komprimierungslösung, die speziell auf Linux-Umgebungen zugeschnitten ist.
tar und gzip (Dateikomprimierungsprogramme)
Der grundlegende Unterschied zwischen den beiden Programmen liegt in ihren Hauptfunktionen:
Das Dienstprogramm tar dient zum Erstellen von Archiven aus mehreren Dateien, während gzip für die Komprimierung einzelner Dateien ausgelegt ist. Trotz dieses Unterschieds können die Programme gemeinsam verwendet werden. Mit tar können Sie die gzip-Funktion nutzen, um die darin archivierten Dateien zu komprimieren. Durch die Verwendung des Schalters „z“ beim tar-Befehl wird gzip in den tar-Prozess integriert, wodurch sich nahtlos komprimierte Archive erstellen lassen.
So komprimieren Sie eine Datei oder ein Verzeichnis mit dem tar-Befehl
Die grundlegende Syntax zum Komprimieren einer Datei mit tar lautet:
$ tar -czvf <tar compress file name> </destination path for files/or/directory>
Nehmen wir beispielsweise an, Sie haben im aktuellen Verzeichnis eine Datei bzw. ein Verzeichnis mit dem Namen „/home/samreena“. Um dieses Verzeichnis in ein Archiv mit dem Namen testfile.tar.gz zu komprimieren, führen Sie den folgenden Befehl aus:
$ tar -czvf testfile.tar.gz /home/samreena
Im obigen Befehl ist „tar“ ein Befehlszeilenprogramm zum Komprimieren einer Datei oder eines Verzeichnisses. Die Optionen „-czvf“ haben folgende Bedeutung:
-c: Erstellt eine tar-komprimierte Datei oder ein Archiv
-z: Komprimiert das Archiv mit gzip
-v: Zeigt den Fortschritt im Detail an; diese Option gibt während der Archivierung detaillierte Informationen im Terminalfenster aus.
-f: Mit diesem Parameter können Sie einen Namen für die Archivdatei festlegen.
Um dies zu überprüfen, verwenden Sie den Befehl „ls“, um alle Dateien und Verzeichnisse des aktuellen Verzeichnisses aufzulisten:
So komprimieren Sie mehrere Dateien oder Verzeichnisse zu einer Archivdatei
Um mehrere Dateien oder Verzeichnisse zu einem einzigen Archiv zu komprimieren, wechseln Sie mit dem Befehl „cd“ in das Verzeichnis, in dem sich alle Dateien oder Unterverzeichnisse befinden. Verwenden Sie den Befehl „tar“ mit den entsprechenden Optionen, z. B. „tar czvf“, um ein komprimiertes Archiv zu erstellen. Um beispielsweise Dateien in ein gzip-komprimiertes Archiv zu komprimieren, können Sie den folgenden Befehl verwenden:
$ tar -czvf <archive_name.tar.gz> <file1 file2 file3 …>
Wenn Sie beispielsweise drei Dateien mit den Namen „index.html“, „testfile.tar.gz“ und „testfolder2“ im aktuellen Verzeichnis „Dokumente“ haben und diese zu einem Archiv mit dem Namen „test_archive.tar.gz“ komprimieren möchten, würden Sie den folgenden Befehl ausführen:
$ tar -czf test_archive.tar.gz index.html testfile.tar.gz testfolder2
Dadurch wird ein komprimiertes Archiv mit dem Namen „test_archive.tar.gz“ erstellt, das die angegebenen Dateien enthält.
So schließen Sie Dateien oder Verzeichnisse bei der Archivierung aus
Bei der Archivierung eines Verzeichnisses kommt es häufig vor, dass bestimmte Dateien aus dem Archiv ausgeschlossen werden sollen. In diesem Fall können Sie die Option --exclude verwenden. Auf diese Weise können Sie Dateien festlegen, die aus dem erstellten Archiv ausgeschlossen werden sollen. Dateien, die den unter der Option „--exclude“ angegebenen Mustern entsprechen, werden automatisch aus dem tar-Archiv ausgeschlossen. Um Dateien von der Archivierung auszuschließen, verwenden Sie den folgenden Befehl:
$ tar --exclude='*.html' -czvf test_archive.tar.gz /home/samreena
So extrahieren Sie Dateien oder Verzeichnisse mit dem Befehl „tar“ aus einem Archiv
Um Dateien unter Linux mit dem Befehl „tar“ zu extrahieren, sollten Sie unbedingt beachten, dass „tar“ – ein Standardwerkzeug der meisten Linux-Distributionen – verschiedene Komprimierungsformate wie bzip2, gzip, lzip, lzop, lzma, xz und compress unterstützt. Beim Erstellen eines tar-Archivs empfiehlt es sich, die entsprechende Endung in den Dateinamen des Archivs aufzunehmen, um das Komprimierungsformat anzugeben. Nehmen wir beispielsweise an, Sie haben ein mit gzip komprimiertes tar-Archiv, dessen Datei den Namen „test_archive.tar.gz“ trägt. Um eine komprimierte tar-Datei zu extrahieren, können Sie die folgende Syntax verwenden:
$ tar -xf test_archive.tar.gz
Wenn Sie während des Entpackvorgangs alle Dateinamen auflisten möchten, verwenden Sie die Option „-v“:
$ tar -xvf test_archive.tar.gz
Bitte beachten Sie, dass dieser Befehl den Inhalt des tar-Archivs standardmäßig in das aktuelle Arbeitsverzeichnis entpackt.
So entpacken Sie ein Archiv in ein bestimmtes Verzeichnis
Um eine tar-Datei nicht im aktuellen Verzeichnis, sondern in einem anderen Verzeichnis zu entpacken, verwenden Sie die Option „-C“ und geben Sie den Verzeichnispfad an.
Angenommen, Sie möchten den Inhalt des Archivs in „home/samreena“ entpacken. In diesem Fall geben Sie den Verzeichnispfad und den Namen des Archivs mit dem folgenden Befehl an:
$ tar -xvf test_archive.tar.gz -C /home/samreena
So extrahieren Sie eine bestimmte Datei oder einen bestimmten Ordner aus einem Archiv
Manchmal ist es erforderlich, bestimmte Dateien oder Ordner aus einem tar-Archiv zu extrahieren, anstatt den gesamten Inhalt zu extrahieren. Dazu können Sie im Befehl eine durch Leerzeichen getrennte Liste von Datei- oder Ordnernamen an den Archivnamen anhängen.
Nehmen wir beispielsweise an, Sie möchten die Dateien „index.html“ und „testfolder2“ aus dem tar-Archiv extrahieren. In diesem Fall können Sie den folgenden Befehl im Terminal ausführen:
$ tar -xf test_archive.tar,gz index.html testfolder2
In Fällen, in denen versucht wird, eine Datei zu extrahieren, die nicht im Archiv enthalten ist, gibt der Befehl eine Rückmeldung in Form der Fehlermeldung „Im Archiv nicht gefunden“ aus:
$ tar -xf test_archive.tar.gz README
Die Optionen des Befehls „tar“:
x: Dient zum Entpacken des tar-Archivs oder bestimmter Dateien aus einem Archiv.
v: Zeigt während der Verarbeitung eines Archivs ausführliche Informationen oder Dateinamen an.
f: Gibt tar vor, auf welche Dateien es angewendet werden soll.
t: Zeigt eine Liste der in einem Archiv enthaltenen Dateinamen an.
Fazit
In diesem Tutorial haben wir gezeigt, wie Sie Dateien unter Linux mit den Tools „tar“ und „gzip“ komprimieren oder extrahieren können. Beide Tools eignen sich zum Komprimieren und Dekomprimieren von Dateien und Verzeichnissen auf Ihrem System. Wenn Sie einen Linux-VPS-Server nutzen, können Sie die Komprimierung und Extraktion von Dateien mithilfe dieser Dienstprogramme effizient durchführen. Bei Fragen können Sie sich gerne an uns wenden.
Blog