TAR-Archivformat

Das tar-Archivformat bietet eine zuverlässige Möglichkeit, Dateien zu speichern. Die ursprünglichen Daten bleiben Byte für Byte erhalten, indem am Anfang ein 512-Byte-Header hinzugefügt wird. Die Dateigrößen werden außerdem so angepasst, dass sie genau in 512-Byte-Blöcke passen. Interessanterweise enthält der Header eine integrierte Prüfsumme zur Fehlererkennung. Während das Standard-TAR-Dienstprogramm möglicherweise beschädigte Header (und damit die zugehörigen Dateien) überspringt, verarbeitet es den Rest des Archivs weiter und stellt so sicher, dass Sie weiterhin auf unbeschädigte Dateien zugreifen können.

Über TAR-Archivinformationen

Ein TAR-Dateiformat, kurz für „Tape Archive“, wird vom Dienstprogramm tar in UNIX-Systemen erstellt. Es dient als Archiv zum Bündeln von Dateien für Aufgaben wie Sicherung oder Verteilung. Im Gegensatz zu komprimierten Archivformaten speichern TAR-Dateien mehrere Dateien, auch Tarball genannt, in einem unkomprimierten Format zusammen mit Metadaten über das Archiv. Während TAR-Dateien selbst nicht komprimiert sind, können sie zur effizienten Speicherung und Übertragung mit Dienstprogrammen wie gzip oder bzip2 komprimiert werden.
Da das TAR-Dateiformat selbst keine integrierte Komprimierung enthält, werden TAR-Archive häufig mit externen Dienstprogrammen wie gzip, bzip2, XZ (unter Verwendung der Komprimierungsalgorithmen 7-Zip / p7zip LZMA / LZMA2), Brotli und Zstandard komprimiert und ähnliche Werkzeuge. Diese Komprimierung trägt dazu bei, die Größe des Archivs zu reduzieren und so die Portabilität und effiziente Datensicherung zu erleichtern. Komprimierte Dateien, die aus diesem Prozess resultieren, können einfache Erweiterungen wie tgz, tbz, txz, tzst oder doppelte Erweiterungen wie tar.gz, tar.br, tar.bz2, tar.xz, tar.zst haben.

Entwicklung des TAR-Archivformats

Das Tar-Archivformat hat sich im Laufe der Zeit weiterentwickelt. Seit den 1980er Jahren wurden dem Dienstprogramm tar neue Funktionen hinzugefügt, die zu Formaterweiterungen führten, die zusätzliche Informationen für verbesserte Funktionalität enthielten. Früheren TAR-Formaten fehlte die Konsistenz bei der Speicherung numerischer Felder. Dies wurde jedoch in späteren Versionen behoben, um die Portabilität zu verbessern. Diese Verbesserung begann mit dem ersten POSIX-Standard für TAR-Formate im Jahr 1988.
POSIX.1 2001 führte das „extended tar“-Format (auch bekannt als tar.h oder pax) ein. Dieses Format ist das flexibelste und integriert Funktionen aus anderen Tar-Spezifikationen. Es ermöglicht Anbietern, mithilfe von Tags benutzerdefinierte Funktionen hinzuzufügen. Während die Dokumentation hervorhebt, dass nicht alle TAR-Implementierungen dieses Format perfekt verarbeiten können, stellt ihr Design sicher, dass jedes Tool, das „Ustar“-Archive lesen kann, auch die meisten „Posix“-Archive lesen kann. Darüber hinaus wurde mit POSIX.1 2001 die bisherige Dateigrößenbeschränkung von 8 GB für TAR-Archive aufgehoben.

TAR-Struktur

  • Dateiname (100 Byte): Der Name der in diesem Eintrag gespeicherten Datei.
  • Dateiberechtigungen (8 Bytes): Berechtigungen für den Zugriff auf die Datei, dargestellt als Oktalzeichenfolge.
  • Besitzer-ID (8 Bytes): Die numerische Benutzer-ID des Dateieigentümers (oktales Format).
  • Gruppen-ID (8 Bytes): Die numerische Gruppen-ID des Dateieigentümers (oktales Format).
  • Dateigröße (12 Byte): Die Größe der Datei im Oktalformat.
  • Letzte Änderungszeit (12 Byte): Der oktale Zeitstempel der letzten Dateiänderung.
  • Prüfsumme (8 Bytes): Ein Prüfsummenwert, der zur Überprüfung der Integrität der Header-Daten verwendet wird.
  • Dateityp (1 Byte): Gibt den Typ der gespeicherten Datei an (normale Datei, fester Link oder symbolischer Link).
  • Name der verknüpften Datei (variable Länge): Wenn es sich bei dem Eintrag um einen Link (fest oder symbolisch) handelt, speichert dieses Feld den Namen der verknüpften Datei.

Ein TAR-Archiv ist im Kern eine Folge von Datenblöcken. Diese Blöcke fester Größe (jeweils 512 Byte) sind linear angeordnet. Um das Ende des Archivs zu markieren, gibt es zwei aufeinanderfolgende Blöcke, die mit Nullen gefüllt sind.
Logisch betrachtet besteht ein TAR-Archiv jedoch aus einer Reihe von Dateieinträgen. Jeder Eintrag besteht aus mehreren Blöcken, wobei der erste Block immer der Eintragskopf ist. Die restlichen Blöcke speichern den eigentlichen Dateiinhalt.
Im Eintragsheader
Der Eintragsheader fungiert als Blaupause für jede Datei im Archiv. Es enthält die folgenden Informationen

Vorteile dieses Formats

  • Vielseitigkeit – TAR ist ein vielseitiges Format, das mehrere Dateien und Verzeichnisse in einer einzigen Archivdatei speichern kann und sich somit für verschiedene Sicherungs- und Verteilungsanforderungen eignet.
  • Erhaltung von Dateiattributen TAR bewahrt wichtige Dateiattribute wie Berechtigungen, Eigentümer und Zeitstempel und stellt so sicher, dass die archivierten Daten ihre Integrität und Nutzbarkeit behalten.
  • Einfachheit – Die Struktur von TAR-Dateien ist einfach und unkompliziert, sodass sie leicht zu bearbeiten und zu verarbeiten sind. Dies vereinfacht die Programmierung und Automatisierung von Aufgaben im Zusammenhang mit TAR-Archiven.

h2: Vorteile dieses Formats

Vom TAR-Archiv unterstützte Vorgänge

Aspose.ZIP ermöglicht dem Benutzer das Extrahieren eines bestimmten Eintrags oder eines gesamten Archivs. Für Aspose.ZIP für .NET können Sie die TarArchiveClass verwenden, um die .tar.gz-Datei zu öffnen und dann ihre Einträge zu durchlaufen und sie an einen gewünschten Speicherort zu extrahieren. Für Aspose.ZIP für Java Ähnlicher Ansatz mit TarArchive zum Öffnen der .tar.gz-Datei und Extrahieren von Einträgen.

TAR-Datei – Interne Struktur

Segmentdateien speichern Rohdaten zu einem Segment. Während es verschiedene Segmenttypen gibt, unterscheiden TAR-Dateien nur zwischen Daten- und Massensegmenten. Massensegmente werden direkt „wie sie sind“ in der TAR-Datei gespeichert.
Datensegmente werden jedoch untersucht, um Verweise auf andere Segmente oder rohe Binärinhalte zu finden. Diese Referenzen werden einfach als Liste eindeutiger Identifikatoren (UUIDs) innerhalb des Datensegments gespeichert. Die referenzierten Segmente können sich entweder innerhalb der aktuellen TAR-Datei oder extern befinden.
Interne Referenzen werden durch Überprüfen des Index der TAR-Datei gefunden. Externe Referenzen erfordern ein externes Tool, um das Segment in einer anderen TAR-Datei zu finden. Die Liste der referenzierten Segmente in einem Datensegment wird zum schnelleren Abruf in der Diagrammdatei gespeichert. Diese Liste wird geordnet gehalten, um den Suchvorgang zu optimieren.

TAR-Datei – Interne Struktur

Innere Archivstruktur

  • Dateimetadaten – Ähnlich wie bei einem TAR-Archiv speichert jede Datei grundlegende Informationen wie Änderungszeit und Berechtigungen. Dieser Abschnitt ist jedoch flexibel und ermöglicht je nach Bedarf das Weglassen oder Einfügen zusätzlicher Details wie Zugriffskontrolllisten (ACLs) oder erweiterter Attribute (EAs). Es wird empfohlen, eine starke Hash-Funktion (wie SHA1) für reguläre Dateien einzuschließen, um die Datenintegrität sicherzustellen.
  • Mehrere Inhaltsströme – Im Gegensatz zu herkömmlichen Archiven können Dateien mehr als einen Datenstrom innerhalb der inneren Datendatei haben. Dies ist nützlich zum Speichern erweiterter Attribute oder Ressourcenzweige, die mit der Datei verknüpft sind.
  • Header – Die innere Indexdatei enthält Dateiheader und spiegelt die in der inneren Datendatei verstreuten Header wider. Bei separater Speicherung müssen die Indexheader jedoch auf die Startposition der entsprechenden Daten innerhalb der Datendatei verweisen. Darüber hinaus listen Verzeichniseinträge im Index ihre enthaltenen Dateien und ihre entsprechenden Offsets innerhalb des inneren Dateiindex auf.
  • Begründung für doppelte Metadaten – Diese Designwahl gewährleistet sowohl effizientes Daten-Streaming/-Dekodierung als auch zufälligen Dateizugriff. Darüber hinaus lassen sich Metadaten gut komprimieren, was zu einem minimalen Speicheraufwand führt. Tests zeigen, dass Metadaten normalerweise weniger als 0,3 % des Speicherplatzes belegen, sodass sich der Kompromiss lohnt.
  • Blockheader – Blockheader enthalten, ähnlich wie die äußere Datei, Informationen zur Blockgröße und eine eindeutige Kennungssequenz.

h2: Innere Archivstruktur

Beispiele für die Verwendung von TAR

Mit der Aspose.ZIP-API können Sie Archive in Ihren Anwendungen extrahieren, ohne dass andere Anwendungen von Drittanbietern erforderlich sind. Die Aspose.ZIP-API stellt die TarArchive-Klasse für die Arbeit mit TAR-Archiven bereit.

Add entries to existing TAR archive via C#

All you need to do is open archive for extraction and add entry to archive .

    using (TarArchive archive = new TarArchive(existing.tar))
    {
        archive.CreateEntry("one_more.bin", data.bin);
        archive.Save(added.tar);
    }

Delete entries from existing TAR archive via .net

Entries of tar archive can be deleted with similar DeleteEntry methods.

using (var archive = new TarArchive("two_files.tar"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.tar");
}

Add files to TAR archive without compression

Tar is a file archival format used to group multiple files and directories into a single archive file without compression , unlike formats like ZIP, RAR and others. To create a tar archive without specifying any compression settings, simply use a TarArchive instance.

    using (FileStream tarFile = File.Open("joint.tar", FileMode.Create))
    {
        FileInfo fi1 = new FileInfo("text.txt");
        FileInfo fi2 = new FileInfo("picture.png");
        using (TarArchive archive = new TarArchive())
        {
            archive.CreateEntry("text.txt", fi1);
            archive.CreateEntry("picture.png", fi2);
            archive.Save(tarFile);
        }
    }

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

Zusätzliche Informationen zu TAR-Archiven


h2: Zusätzliche Informationen zu TAR-Archiven

Die Leute haben gefragt

1. Was ist ein TAR-Archiv?

Ein TAR-Archiv, kurz für Tape Archive, ist ein Dateiformat, das zum Bündeln mehrerer Dateien und Verzeichnisse in einer einzigen Archivdatei ohne Komprimierung verwendet wird. Es wird häufig für Sicherungs- und Verteilungszwecke in Unix-basierten Systemen verwendet.

2. Welche Vorteile bieten TAR-Archive?

TAR zeichnet sich durch Universalität aus, da es mit den meisten Betriebssystemen und Archivprogrammen kompatibel ist und einen nahtlosen Datenaustausch über verschiedene Plattformen hinweg ermöglicht. Seine Einfachheit liegt in der unkomplizierten Struktur von TAR-Archiven, die eine mühelose Erstellung, Extraktion und Bearbeitung von Dateien ermöglicht. Darüber hinaus bietet TAR Effizienz, indem es die Komprimierung mit externen Tools wie gzip oder bzip2 ermöglicht, sodass Benutzer die Dateigröße reduzieren und Speicherplatz und Bandbreite bei der Datenübertragung sparen können.

3. Welche Einschränkungen gibt es bei TAR-Archiven?

Obwohl TAR ein vielseitiges Dateiformat ist, das häufig zum Archivieren und Verteilen von Dateien in Unix-basierten Systemen verwendet wird, gibt es einige Einschränkungen, die es zu beachten gilt. Erstens fehlen TAR integrierte Komprimierungsfunktionen, was bedeutet, dass Sie zusätzliche Tools wie gzip oder bzip2 benötigen, um die Dateigröße zu reduzieren. Zweitens bieten TAR-Archive keine nativen Verschlüsselungsfunktionen. Wenn Sie also Datensicherheit benötigen, müssen Sie sich zum Passwortschutz auf externe Tools verlassen. Schließlich bietet TAR nur begrenzte Unterstützung für die Beibehaltung von Dateiattributen wie Zeitstempeln und Berechtigungen der Originaldateien, was sich auf die Integrität der archivierten Daten auswirken kann.