Harting Development

Linux tar: Ein mächtiges Tool für Archivierung und Komprimierung

Lukas Fuchs vor 7 Monaten in  Open Source 3 Minuten Lesedauer

Was ist das tar-Befehlsprogramm in Linux?

Das tar-Befehlsprogramm (Tape ARchiver) ist ein robustes und vielseitiges Tool für die Archivierung und Komprimierung von Dateien und Verzeichnissen unter Linux. Es ist ein Standardbefehl, der auf den meisten Linux-Distributionen vorinstalliert ist.

Funktionen von tar

tar bietet eine Reihe leistungsstarker Funktionen:

  • Archivierung: Kombiniert mehrere Dateien und Verzeichnisse in einer einzigen Datei, die als Tarball bezeichnet wird. Dies erleichtert die Verwaltung, Übertragung und Sicherung großer Datenmengen.
  • Komprimierung: Reduziert die Größe des erstellten Tarballs, um Speicherplatz zu sparen oder die Übertragungszeit zu verkürzen.
  • Dekomprimierung: Extrahiert die im Tarball enthaltenen Dateien und Verzeichnisse in den angegebenen Zielort.

Wie funktioniert tar?

tar arbeitet, indem es einen Stream von Daten von einem Eingabegerät (z. B. Festplatte) zu einem Ausgabegerät (z. B. Tarball) erstellt. Dieser Stream enthält sowohl die Inhalte der Dateien als auch Metadaten wie Dateinamen, Berechtigungen und Zeitstempel.

Vorteile der Verwendung von tar

Die Verwendung von tar bietet mehrere Vorteile:

  • Einfachheit: tar ist ein einfach zu bedienendes Befehlszeilentool mit einer intuitiven Syntax.
  • Flexibilität: tar bietet zahlreiche Optionen, mit denen du deine Archive an verschiedene Anforderungen anpassen kannst.
  • Portabilität: Tarballs können auf verschiedenen Plattformen und Systemen problemlos übertragen und verwendet werden.
  • Kompatibilität: tar-Archive sind mit einer Vielzahl von anderen Archivierungsprogrammen und -diensten kompatibel.

Verwendung von tar zum Archivieren von Dateien und Verzeichnissen

Tar ist ein vielseitiges Tool, mit dem du Dateien und Verzeichnisse effizient archivieren kannst, um Speicherplatz freizugeben oder Daten für die Sicherung oder Übertragung vorzubereiten. Hier erfährst du, wie du tar zum Archivieren von Dateien und Verzeichnissen verwendest.

Grundlegende Syntax

Um ein Archiv zu erstellen, verwende den folgenden Befehl:

tar -cvf archive.tar dateien_oder_verzeichnisse

Wobei:

  • -c gibt an, dass du ein Archiv erstellen möchtest.
  • -v aktiviert den ausführlichen Modus, der den Fortschritt der Archivierung anzeigt.
  • -f gibt den Namen und den Speicherort des zu erstellenden Archivs an.
  • dateien_oder_verzeichnisse sind die Dateien oder Verzeichnisse, die du archivieren möchtest.

Ein Verzeichnis archivieren

Um ein Verzeichnis einschließlich aller darin enthaltenen Dateien und Unterverzeichnisse zu archivieren, verwende die folgende Syntax:

tar -cvf archive.tar verzeichnisname

Rekursive Archivierung

Wenn du ein Verzeichnis und alle seine Unterverzeichnisse rekursiv archivieren möchtest, verwende die Option -R:

tar -cvf archive.tar -R verzeichnisname

Dateien ausschließen

Du kannst bestimmte Dateien oder Verzeichnisse von der Archivierung ausschließen, indem du die Option --exclude verwendest:

tar -cvf archive.tar --exclude datei_oder_verzeichnis_name dateien_oder_verzeichnisse

Beispiel

Um beispielsweise ein Archiv mit dem Namen backup.tar zu erstellen, das die Verzeichnisse Dokumente und Bilder enthält, mit Ausnahme der Datei README.txt im Verzeichnis Dokumente, kannst du den folgenden Befehl verwenden:

tar -cvf backup.tar Dokumente Bilder --exclude Dokumente/README.txt

Compress- und Decompress-Optionen mit tar

Neben der Archivierung bietet tar auch die Möglichkeit, Dateien zu komprimieren und zu dekomprimieren, um Speicherplatz zu sparen. Dies kann besonders beim Sichern oder Übertragen großer Datenmengen von Vorteil sein.

Komprimierung mit tar

Um Dateien zu komprimieren, während du sie archivierst, verwende die Option -z, die die Gzip-Komprimierung aktiviert. Du kannst auch die Option -j für die Bzip2-Komprimierung verwenden, die eine höhere Komprimierungsrate bietet, aber etwas langsamer ist.

tar -czvf archiv.tar.gz dateienverzeichnis
tar -cjvf archiv.tar.bz2 dateienverzeichnis

Dekomprimierung mit tar

Wenn du ein komprimiertes Archiv extrahierst, musst du die entsprechende Dekomprimierungsoption angeben. Verwende -z für Gzip oder -j für Bzip2.

tar -xzvf archiv.tar.gz
tar -xjvf archiv.tar.bz2

Komprimierungsstufen

Sowohl Gzip als auch Bzip2 unterstützen Komprimierungsstufen, die du mit der Option -n angeben kannst. Eine höhere Stufe führt zu einer stärkeren Komprimierung, aber auch zu einer längeren Komprimierungszeit.

tar -cznf9 archiv.tar.gz dateienverzeichnis
tar -cjvf9 archiv.tar.bz2 dateienverzeichnis

Weitere Komprimierungsoptionen

Zusätzlich zu Gzip und Bzip2 kannst du mit tar auch andere Komprimierungsalgorithmen verwenden, z. B. LZMA oder XZ. Diese Optionen finden sich in den Paketen xz-utils und p7zip.

tar --xz -cf archiv.tar.xz dateienverzeichnis
tar --lzma -cf archiv.tar.lzma dateienverzeichnis

Erzeugen von mehrteiligen Archiven mit tar

Wenn du mit riesigen Datensätzen arbeitest, die nicht in ein einzelnes Archiv passen, kannst du mit tar mehrteilige Archive erstellen. Dies ermöglicht es dir, eine große Anzahl von Dateien und Verzeichnissen in kleinere, überschaubarere Segmente zu unterteilen.

Erstellen eines mehrteiligen Archivs

Um ein mehrteiliges Archiv zu erstellen, verwende die Option -M zusammen mit der entsprechenden Blockgröße:

tar -cvf --bsize=BLOCKGRÖSSE MEHRTEILIGES_ARCHIV.tar VERZEICHNIS

Dabei ersetzt du BLOCKGRÖSSE durch die gewünschte Blockgröße in Bytes (z. B. 10240 für 10 MB).

Extrahieren aus einem mehrteiligen Archiv

Das Extrahieren von Dateien aus einem mehrteiligen Archiv erfordert die Verwendung der Option -M zusammen mit der Angabe der Blockgröße:

tar -xvf --bsize=BLOCKGRÖSSE MEHRTEILIGES_ARCHIV.tar --next-volume=NEUER_VOLUME

Dabei ersetzt du BLOCKGRÖSSE durch die Blockgröße des mehrteiligen Archivs und NEUER_VOLUME durch den Pfad zum nächsten Teil des Archivs (z. B. MEHRTEILIGES_ARCHIV.tar.2).

Vorteile von mehrteiligen Archiven

  • Bequeme Handhabung: Mehrteilige Archive können einfacher zu handhaben sein, insbesondere bei großen Datensätzen.
  • Fehlertoleranz: Wenn ein Teil des Archivs beschädigt ist, können die verbleibenden Teile wiederhergestellt werden.
  • Effiziente Übertragung: Mehrteilige Archive ermöglichen eine schnellere Übertragung über Netzwerke oder externe Speichergeräte.

Extrahieren von Dateien aus einem tar-Archiv

Nachdem du erfolgreich ein tar-Archiv erstellt hast, kannst du Dateien daraus extrahieren. Dies ist ein unkomplizierter Prozess, der mit ein paar einfachen Befehlen durchgeführt werden kann.

Extrahieren aller Dateien

Um alle Dateien aus einem tar-Archiv zu extrahieren, verwendest du die Option -x:

tar -xvf archive.tar

Diese Aktion entpackt alle Dateien in das aktuelle Verzeichnis. Du kannst ein bestimmtes Verzeichnis zum Entpacken angeben, indem du die Option -C verwendest:

tar -xvf archive.tar -C /pfad/zum/verzeichnis

Extrahieren ausgewählter Dateien

Wenn du nur bestimmte Dateien aus dem Archiv extrahieren möchtest, kannst du die Option -T verwenden, um eine Liste der Dateien anzugeben:

tar -xvf archive.tar --files-from dateien.txt

Hierbei ist dateien.txt eine Textdatei, die die Namen der zu extrahierenden Dateien enthält.

Extrahieren mit Komprimierung

Wenn du ein Archiv extrahierst, das mit einer Komprimierungsmethode wie Gzip oder Bzip2 komprimiert wurde, musst du die entsprechende Option angeben:

  • Für Gzip: -z
  • Für Bzip2: -j

Beispiel für Gzip:

tar -xzvf archive.tar.gz

Ausschluss von Dateien

Wenn du bestimmte Dateien oder Verzeichnisse aus der Extraktion ausschließen möchtest, kannst du die Option --exclude verwenden:

tar -xvf archive.tar --exclude="ordner/*" --exclude="datei.txt"

Weitere Optionen

Es gibt noch weitere nützliche Optionen, die du beim Extrahieren von tar-Archiven verwenden kannst:

  • -i: Interaktiver Modus, bei dem du aufgefordert wirst, jede Datei einzeln zu extrahieren.
  • -m: Erhält die Zeitstempel und Berechtigungen der Dateien.
  • -v: Ausführliche Ausgabe, die den Fortschritt anzeigt.

Experimentiere mit diesen Optionen, um die für deine spezifischen Anforderungen am besten geeigneten Kombinationen zu finden.

Ausschließen bestimmter Dateien oder Verzeichnisse von der Archivierung

Bei der Archivierung großer Datenmengen kann es vorkommen, dass du bestimmte Dateien oder Verzeichnisse von der Archivierung ausschließen möchtest. Mit tar kannst du ganz einfach Filter angeben, um bestimmte Dateien oder Verzeichnisse von der Archivierung auszuschließen.

Glob-Muster

Eine Möglichkeit, Dateien auszuschließen, besteht darin, Glob-Muster zu verwenden. Glob-Muster sind Platzhalter, die mehrere Dateien oder Verzeichnisse übereinstimmen lassen. Um beispielsweise alle Dateien mit der Erweiterung ".log" auszuschließen, kannst du folgenden Befehl verwenden:

tar -cvf archive.tar --exclude="*.log" *

Reguläre Ausdrücke

Tar unterstützt auch reguläre Ausdrücke zum Ausschließen von Dateien. Reguläre Ausdrücke sind leistungsfähigere Muster als Glob-Muster und ermöglichen es dir, Dateien anhand komplexerer Kriterien auszuschließen. Beispielsweise kannst du den folgenden Befehl verwenden, um alle Dateien auszuschließen, die mit "tmp" beginnen:

tar -cvf archive.tar --exclude="^tmp.*" *

Dateien und Verzeichnisse explizit ausschließen

Wenn du Dateien oder Verzeichnisse explizit vom Archiv ausschließen möchtest, kannst du die Option --exclude-from verwenden. Diese Option erwartet eine Datei, die eine Liste der auszuschließenden Dateien oder Verzeichnisse enthält. Beispielsweise kannst du eine Datei mit dem Namen exclude.txt mit folgenden Inhalten erstellen:

tmp/
*.log

Und dann den folgenden Befehl verwenden, um die Dateien auszuschließen:

tar -cvf archive.tar --exclude-from=exclude.txt *

Fazit

Durch das Ausschließen bestimmter Dateien oder Verzeichnisse von der Archivierung kannst du tar-Archive erstellen, die nur die gewünschten Daten enthalten. Glob-Muster, reguläre Ausdrücke und die Option --exclude-from bieten dir flexible Möglichkeiten, deine Archivvorgänge entsprechend deinen Anforderungen anzupassen.

Passwortschutz für tar-Archive

Möchtest du deine sensiblen Daten in tar-Archiven schützen, kannst du ein Passwort festlegen. Dies verschlüsselt den Inhalt des Archivs und verhindert unbefugten Zugriff.

Erstellen eines passwortgeschützten tar-Archivs

Um ein passwortgeschütztes tar-Archiv zu erstellen, verwendest du die Option -c (Erstellen) zusammen mit der Option -P (Passwort):

tar -cvP [Passwort] -f [Archivname] [Dateien/Verzeichnisse]

Beispiel:

tar -cvP meinPasswort -f geheim.tar wichtige_dateien.txt vertrauliche_daten.xls

Extrahieren von Dateien aus einem passwortgeschützten tar-Archiv

Zum Extrahieren von Dateien aus einem passwortgeschützten tar-Archiv benötigst du das Kennwort, das beim Erstellen des Archivs festgelegt wurde:

tar -xvP [Passwort] -f [Archivname]

Beispiel:

tar -xvP meinPasswort -f geheim.tar

Andere Möglichkeiten zum Passwortschutz von tar-Archiven

Neben der Option -P stehen weitere Möglichkeiten zum Hinzufügen von Passwortschutz zu tar-Archiven zur Verfügung:

  • GnuPG: Du kannst die GnuPG-Verschlüsselung verwenden, um tar-Archive zu verschlüsseln.
  • OpenSSL: Auch OpenSSL bietet Möglichkeiten zur Verschlüsselung von tar-Archiven.
  • Externe Tools: Es gibt externe Tools wie tar-encrypt und 7z, die zusätzliche Optionen für die Verschlüsselung von tar-Archiven bieten.

Die Wahl der Methode hängt von deinen spezifischen Anforderungen und der Verfügbarkeit der Tools auf deinem System ab.

Verwendung von tar mit erweiterten Optionen

Neben den grundlegenden Archivierungs- und Komprimierungsfunktionen bietet tar noch eine Reihe erweiterter Optionen, mit denen du die Funktionalität des Befehls auf verschiedene Weise erweitern kannst.

Erweiterte Archivierungsoptionen

  • --exclude=Pfad: Mit dieser Option kannst du bestimmte Dateien oder Verzeichnisse von der Archivierung ausschließen. Dies ist nützlich, um temporäre Dateien oder sensible Daten aus Archiven zu entfernen.
  • --no-overwrite-dir: Verhindert das Überschreiben vorhandener Verzeichnisse beim Extrahieren. Dies ist hilfreich, wenn du vermeiden möchtest, dass vorhandene Daten überschrieben werden.
  • --atime-preserve: Behält die Zugriffszeit der Dateien im Archiv bei. Dies ist nützlich, um die Metadaten von Dateien beim Archivieren und anschließenden Extrahieren zu bewahren.

Erweiterte Komprimierungsoptionen

  • --compress=Algorithmus: Ermöglicht es dir, einen bestimmten Komprimierungsalgorithmus zu verwenden. Zu den verfügbaren Algorithmen gehören bzip2, gzip, lzma, xz und zstd.
  • --block-size=Größe: Legt die Blockgröße für die Komprimierung fest. Eine größere Blockgröße kann zu einer höheren Komprimierung führen, aber auch zu langsameren Verarbeitungszeiten.
  • --no-same-ownership: Deaktiviert die Beibehaltung der Dateibesitzer und -berechtigungen beim Archivieren und Extrahieren. Dies kann nützlich sein, wenn du Archive zwischen verschiedenen Systemen übertragen möchtest, die unterschiedliche Benutzerkonten verwenden.

Sonstige erweiterte Optionen

  • --use-compress-program=Programm: Ermöglicht es, ein externes Komprimierungsprogramm für die Archivierung zu verwenden. Dies ist nützlich, wenn du einen nicht von tar unterstützten Komprimierungsalgorithmus verwenden möchtest.
  • --interactive: Fordert dich während des Archivierungs- oder Extraktionsprozesses zur Bestätigung auf. Dies ist nützlich, um versehentliche Vorgänge zu verhindern.
  • --version: Zeigt die tar-Versionsinformationen an.

Denke daran, dass einige dieser erweiterten Optionen möglicherweise nicht auf allen Systemen verfügbar sind, da sie von der tar-Implementierung abhängen. Weitere Informationen zu den erweiterten tar-Optionen findest du auf der tar-Manpage (https://linux.die.net/man/1/tar).

Fehlerbehebung bei Problemen mit tar

Häufige Fehlermeldungen

"tar: Error opening archive: Permission denied"

  • Prüfe, ob du die erforderlichen Berechtigungen zum Zugriff auf das Archiv hast.
  • Verwende den Befehl sudo oder su, um den Befehl tar als Administrator auszuführen.

"tar: Error writing to archive: Disk space is full"

  • Prüfe, ob du genügend freien Speicherplatz auf dem Ziellaufwerk hast.
  • Lösche nicht benötigte Dateien oder verschiebe das Archiv auf ein anderes Laufwerk mit mehr Speicherplatz.

"tar: Error reading from archive: Invalid checksum"

  • Das Archiv ist beschädigt.
  • Lade das Archiv erneut herunter oder versuche es aus einer anderen Quelle.
  • Verwende den Befehl tar -J -x -v --same-order --checkpoint=10000 (für xz-komprimierte Archive), um das Archiv zu reparieren.

Häufige Probleme

Die Datei wird nicht extrahiert

  • Überprüfe, ob die Datei im Archiv enthalten ist.
  • Überprüfe, ob du das richtige Archiv öffnest.
  • Verwende die Option -v beim Extrahieren, um detailliertere Informationen anzuzeigen.

Das Archiv kann nicht erstellt werden

  • Überprüfe, ob du Schreibrechte für das Zielverzeichnis hast.
  • Verwende den Befehl mkdir oder sudo mkdir zum Erstellen des Zielverzeichnisses.

Das Archiv ist beschädigt

  • Verwende ein Archivierungs-Hilfsprogramm wie 7-Zip oder PeaZip, um die Integrität des Archivs zu überprüfen.
  • Repariere das Archiv mit dem Befehl tar -J -x -v --same-order --checkpoint=10000.
  • Lade das Archiv erneut herunter oder versuche es aus einer anderen Quelle.

Weitere Ressourcen

Alternativen zum tar-Befehl

Obwohl tar ein vielseitiges Tool ist, sind andere Optionen verfügbar, wenn du nach alternativen Archivierungs- und Komprimierungslösungen suchst.

7-Zip

Beschreibung:

7-Zip ist ein quelloffenes Archivierungs- und Komprimierungsprogramm für Windows, Linux, macOS und Unix-ähnliche Systeme. Es unterstützt eine Vielzahl von Archivformaten, darunter 7z, ZIP, GZIP, BZIP2 und TAR.

Vorteile:

  • Hohe Komprimierungsrate
  • Unterstützung für Verschlüsselung
  • Multithread-Unterstützung für schnellere Komprimierung und Extraktion

WinRAR

Beschreibung:

WinRAR ist eine kommerzielle Archivierungs- und Komprimierungssoftware für Windows. Es ist bekannt für seine leistungsstarke Komprimierungsengine und seine Vielseitigkeit.

Vorteile:

  • Hervorragende Komprimierungsrate, insbesondere für Multimedia-Dateien
  • Unterstützung für erweiterte Reparaturfunktionen für beschädigte Archive
  • Integrierte Dateiverwaltungsfunktionen

PeaZip

Beschreibung:

PeaZip ist ein kostenloser und quelloffener Archivierungs- und Komprimierungsmanager für Windows, Linux und macOS. Es unterstützt über 200 Archivformate und kann Dateien verschlüsseln und in mehrere Teile aufteilen.

Vorteile:

  • Intuitive Benutzeroberfläche
  • Umfassende Dateiverwaltungsfunktionen
  • Unterstützung für Plugin-Erweiterungen

Keka

Beschreibung:

Keka ist eine kostenlose Archivierungs- und Komprimierungs-App für macOS. Sie ist einfach zu bedienen und unterstützt eine Vielzahl von Formaten, darunter ZIP, RAR, 7z und TAR.

Vorteile:

  • Schnelles und effizientes Archivieren und Extrahieren
  • Unterstützung für Drag-and-Drop
  • Einfache Freigabeoptionen für soziale Medien und Cloud-Dienste

Darüber hinaus kannst du folgende Tools in Erwägung ziehen:

  • Zip: Ein weit verbreitetes Archivierungsformat, das von den meisten Betriebssystemen unterstützt wird.
  • Gzip: Ein Komprimierungsformat, das für die Komprimierung einzelner Dateien konzipiert ist.
  • Bzip2: Ein weiteres Komprimierungsformat mit einer höheren Komprimierungsrate als Gzip.

Folge uns

Neue Posts

Beliebte Posts