Format d'archive TAR

Le format d’archive tar offre un moyen fiable de stocker des fichiers. Il préserve les données originales octet par octet, en ajoutant un en-tête de 512 octets au début. La taille des fichiers est également ajustée pour s’adapter parfaitement aux blocs de 512 octets. Fait intéressant, l’en-tête inclut une somme de contrôle intégrée pour la détection des erreurs. Bien que l’utilitaire tar standard puisse ignorer les en-têtes corrompus (et par conséquent les fichiers associés), il continuera à traiter le reste de l’archive, garantissant que vous pouvez toujours accéder aux fichiers intacts.

À propos des informations sur les archives TAR

Un format de fichier tar, abréviation de « tape archive », est créé par l’utilitaire tar dans les systèmes UNIX. Il sert d’archive pour regrouper des fichiers pour des tâches telles que la sauvegarde ou la distribution. Contrairement aux formats d’archive compressés, les fichiers tar stockent plusieurs fichiers, également appelés archive tar, dans un format non compressé ainsi que des métadonnées sur l’archive. Bien que les fichiers tar eux-mêmes ne soient pas compressés, ils peuvent l’être à l’aide d’utilitaires tels que gzip ou bzip2 pour un stockage et un transfert efficaces.
Étant donné que le format de fichier tar lui-même n’inclut pas la compression intégrée, les archives tar sont souvent compressées à l’aide d’utilitaires externes tels que gzip, bzip2, XZ (utilisant les algorithmes de compression 7-Zip / p7zip LZMA / LZMA2), Brotli, Zstandard. , et des outils similaires. Cette compression permet de réduire la taille de l’archive pour une portabilité plus facile et une sauvegarde efficace des données. Les fichiers compressés résultant de ce processus peuvent avoir des extensions simples comme tgz, tbz, txz, tzst ou des extensions doubles comme tar.gz, tar.br, tar.bz2, tar.xz, tar.zst.

Evolution du format d'archive TAR

Le format d’archive tar a évolué au fil du temps. Les nouvelles fonctionnalités ajoutées à l’utilitaire tar depuis les années 1980 ont conduit à des extensions de format incluant des informations supplémentaires pour des fonctionnalités améliorées. Les premiers formats tar manquaient de cohérence dans la façon dont les champs numériques étaient stockés, mais ce problème a été résolu dans les versions ultérieures pour améliorer la portabilité. Cette amélioration a commencé avec le premier standard POSIX pour les formats tar en 1988.
POSIX.1 2001 a introduit le format “tar étendu” (également connu sous le nom de tar.h ou pax). Ce format est le plus flexible, intégrant des fonctionnalités d’autres spécifications tar. Il permet aux fournisseurs d’ajouter des fonctionnalités personnalisées à l’aide de balises. Bien que la documentation souligne que toutes les implémentations tar ne peuvent pas gérer parfaitement ce format, sa conception garantit que tout outil capable de lire les archives « ustar » peut également lire la plupart des archives « posix ». De plus, POSIX.1 2001 a éliminé la précédente limitation de taille de fichier de 8 Go pour les archives tar.

Structure du TAR

Une archive TAR, à la base, est une séquence de blocs de données. Ces blocs de taille fixe 512 octets chacun sont disposés linéairement. Pour marquer la fin de l’archive, il y a deux blocs consécutifs remplis de zéros.
Cependant, vue logiquement, une archive TAR est une série d’entrées de fichier. Chaque entrée est composée de plusieurs blocs, le premier bloc étant toujours l’en-tête de l’entrée. Les blocs restants stockent le contenu réel du fichier.
À l’intérieur de l’en-tête d’entrée
L’en-tête d’entrée agit comme un modèle pour chaque fichier de l’archive. Il contient les informations suivantes

  • Nom du fichier (100 octets): Le nom du fichier stocké dans cette entrée.
  • Autorisations de fichier (8 octets): autorisations d’accès au fichier, représentées sous forme de chaîne octale.
  • ID du propriétaire (8 octets): L’ID utilisateur numérique du propriétaire du fichier (format octal).
  • ID de groupe (8 octets): L’ID de groupe numérique du propriétaire du fichier (format octal).
  • Taille du fichier (12 octets): La taille du fichier au format octal.
  • Heure de la dernière modification (12 octets): L’horodatage octal de la dernière modification du fichier.
  • Somme de contrôle (8 octets): valeur de somme de contrôle utilisée pour vérifier l’intégrité des données d’en-tête.
  • Type de fichier (1 octet): indique le type de fichier stocké (fichier normal, lien physique ou lien symbolique).
  • Nom du fichier lié (longueur variable): Si l’entrée est un lien (physique ou symbolique), ce champ stocke le nom du fichier lié.

Avantages de ce format

  • Polyvalence - TAR est un format polyvalent capable de stocker plusieurs fichiers et répertoires dans un seul fichier d’archive, ce qui le rend adapté à divers besoins de sauvegarde et de distribution.
  • Préservation des attributs de fichier TAR préserve les attributs de fichier importants tels que les autorisations, la propriété et les horodatages, garantissant ainsi que les données archivées conservent leur intégrité et leur convivialité.
  • Simplicité - La structure des fichiers TAR est simple et directe, ce qui les rend faciles à utiliser et à traiter. Cela simplifie la programmation et l’automatisation des tâches liées aux archives TAR.

Opérations prises en charge par les archives TAR

Aspose.ZIP permet à l’utilisateur d’extraire une entrée particulière ou une archive entière. Pour Aspose.ZIP pour .NET Vous pouvez utiliser TarArchiveClass pour ouvrir le fichier .tar.gz, puis parcourir ses entrées, en les extrayant vers un emplacement souhaité. Pour Aspose.ZIP pour Java Approche similaire utilisant TarArchive pour ouvrir le fichier .tar.gz et extraire les entrées.

Fichier TAR - Structure interne

Les fichiers de segments stockent des données brutes sur un segment. Bien qu’il existe différents types de segments, les fichiers TAR ne font la différence qu’entre les segments de données et les segments en masse. Les segments en vrac sont directement enregistrés « tels quels » dans le fichier TAR.
Les segments de données, cependant, sont examinés pour trouver des références à d’autres segments ou à du contenu binaire brut. Ces références sont simplement stockées sous forme de liste d’identifiants uniques (UUID) dans le segment de données. Les segments référencés peuvent être situés soit dans le fichier TAR actuel, soit en externe.
Les références internes sont trouvées en vérifiant l’index du fichier TAR. Les références externes nécessitent un outil externe pour localiser le segment dans un autre fichier TAR. La liste des segments référencés dans un segment de données est stockée dans le fichier graphique pour une récupération plus rapide. Cette liste est maintenue ordonnée pour optimiser le processus de recherche.

Fichier TAR - Structure interne

Structure des archives internes

  • Métadonnées de fichier - Semblable à une archive tar, chaque fichier stocke des informations de base telles que l’heure de modification et les autorisations. Cependant, cette section est flexible et permet d’omettre ou d’inclure des détails supplémentaires tels que des listes de contrôle d’accès (ACL) ou des attributs étendus (EA) en fonction de vos besoins. Il est recommandé d’inclure une fonction de hachage puissante (comme SHA1) pour les fichiers normaux afin de garantir l’intégrité des données.
  • Flux de contenu multiples - Contrairement aux archives traditionnelles, les fichiers peuvent contenir plusieurs flux de données dans le fichier de données interne. Ceci est utile pour stocker les attributs étendus ou les branches de ressources associées au fichier.
  • En-têtes - Le fichier d’index interne contient les en-têtes de fichiers, reflétant ceux dispersés dans le fichier de données interne. Mais, lorsqu’ils sont stockés séparément, les en-têtes d’index doivent faire référence à la position de départ de leurs données correspondantes dans le fichier de données. De plus, les entrées de répertoire dans l’index répertorient les fichiers contenus et leurs décalages correspondants dans l’index de fichier interne.
  • Justification des métadonnées en double - Ce choix de conception garantit à la fois un streaming/décodage efficace des données et un accès aléatoire aux fichiers. De plus, les métadonnées se compressent bien, ce qui entraîne une surcharge de stockage minimale. Les tests montrent que les métadonnées occupent généralement moins de 0,3 % de l’espace de stockage, ce qui rend le compromis intéressant.
  • En-têtes de bloc - Les en-têtes de bloc, similaires au fichier externe, contiennent des informations sur la taille du bloc et une séquence d’identifiants unique.

Exemples d'utilisation de TAR

L’API Aspose.ZIP permet d’extraire des archives dans vos applications sans avoir besoin d’autres applications tierces. L’API Aspose.ZIP fournit la classe TarArchive pour travailler avec les archives TAR.

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

Informations supplémentaires sur les archives TAR

Les gens ont demandé

1. Qu’est-ce qu’une archive TAR ?

Une archive TAR, abréviation de Tape Archive, est un format de fichier utilisé pour regrouper plusieurs fichiers et répertoires dans un seul fichier d’archive sans compression. Il est couramment utilisé à des fins de sauvegarde et de distribution dans les systèmes Unix.

2. Quels sont les avantages des archives TAR ?

TAR revendique l’universalité, car il est compatible avec la plupart des systèmes d’exploitation et des programmes d’archives, facilitant le partage et l’échange transparents de données entre différentes plates-formes. Sa simplicité réside dans la structure simple des archives TAR, permettant une création, une extraction et une manipulation sans effort de fichiers. De plus, TAR offre de l’efficacité en permettant la compression avec des outils externes comme gzip ou bzip2, permettant aux utilisateurs de réduire la taille des fichiers et d’économiser l’espace de stockage et la bande passante pendant la transmission des données.

3. Quelles sont les limites des archives TAR ?

Bien que TAR soit un format de fichier polyvalent couramment utilisé pour l’archivage et la distribution de fichiers dans les systèmes basés sur Unix, il comporte certaines limitations dont il faut être conscient. Premièrement, TAR ne dispose pas de capacités de compression intégrées, ce qui signifie que vous aurez besoin d’outils supplémentaires tels que gzip ou bzip2 pour réduire la taille des fichiers. Deuxièmement, les archives TAR n’offrent pas de fonctionnalités de cryptage natives, donc si vous avez besoin de sécurité des données, vous devrez vous fier à des outils externes pour la protection par mot de passe. Enfin, TAR offre une prise en charge limitée pour la préservation des attributs de fichiers tels que les horodatages et les autorisations des fichiers d’origine, ce qui peut affecter l’intégrité des données archivées.