Je sais que cela a tar
été fait pour les archives sur bande à l'époque, mais aujourd'hui, nous avons des formats de fichiers d'archives qui agrègent les fichiers et effectuent une compression dans le même format de fichier logique.
Des questions:
Existe-t-il une perte de performances lors des étapes d'agrégation / compression / décompression pour l'utilisation
tar
encapsulée dansgzip
oubzip2
par rapport à l'utilisation d'un format de fichier qui effectue l'agrégation et la compression dans la même structure de données? Supposons que la durée de fonctionnement du compresseur comparé soit identique (par exemple, gzip et Deflate sont similaires).Existe-t-il des fonctionnalités du
tar
format de fichier que les autres formats de fichier, tels que.7z
et.zip
n’ont pas?Depuis
tar
est un tel ancien format de fichier, et les nouveaux formats de fichiers existent aujourd'hui, pourquoi est -tar
(si encapsulé dansgzip
,bzip2
ou même le nouveauxz
) encore si largement utilisé aujourd'hui sur GNU / Linux, Android, BSD, et d' autres systèmes d' exploitation UNIX, pour le fichier transferts, sources de programmes et téléchargements binaires, et parfois même en tant que format de gestionnaire de paquets?
tar xvzf
est plus difficile que7z -x
...tar xvzf
, les données non compressées ne sont pas écrites sur le disque dur au.tar
format! Vous avez raison que si vous exécutiezgunzip blah.tar.gz
puistar xf blah.tar
, il écrirait les données sur le disque deux fois (une fois comme .tar et encore sous forme de fichiers dans le système de fichiers), mais personne ne fait en réalité de cette façon. Iltar xzf
utilise un tuyau UNIX (essentiellement une copie de mémoire) pour transférer les données non compressées degzip
(ou de tout compresseur) verstar
, de sorte que les données ne soient pas écrites sur le disque au.tar
format.tar
(surtout compressé) se comporte terriblement quand il s'agit de corruption de données. Les petites données de redondance / récupération ajoutées par les formats modernes valent de l'orRéponses:
Partie 1: Performance
Voici une comparaison de deux workflows distincts et de ce qu’ils font.
Vous avez un fichier sur disque
blah.tar.gz
qui représente, par exemple, 1 Go de données compressées au format gzip et occupant 2 Go (non compressé) (donc un taux de compression de 50%).La manière dont vous créeriez ceci, si vous archiviez et compressiez séparément, serait la suivante:
Cela aboutirait à
blah.tar
une simple agrégation de lafiles ...
forme non compressée.Alors tu ferais
Cela permettrait de lire le contenu
blah.tar
du disque, de le compresser via l'algorithme de compression gzip, d'écrire le contenu dansblah.tar.gz
le fichier, puis de le dissocier (supprimer)blah.tar
.Maintenant, décompressons!
Voie 1
Vous avez
blah.tar.gz
, d'une manière ou d'une autre.Vous décidez de courir:
Cette volonté
blah.tar.gz
.gzip
décompresseur en mémoire.blah.tar
sur le disque et répétez l'opération jusqu'à ce que toutes les données compressées soient lues.blah.tar.gz
.Vous avez maintenant
blah.tar
sur le disque, qui est décompressé mais contient un ou plusieurs fichiers, avec une surcharge de structure de données très faible. La taille du fichier est probablement supérieure de quelques octets à la somme de toutes les données du fichier.Vous courez:
Cette volonté
blah.tar
et lestar
structures de données du format de fichier, y compris des informations sur les autorisations de fichier, les noms de fichier, les répertoires, etc.Les données totales lues à partir du disque dans ce processus étaient de 1 Go (pour gunzip) + 2 Go (pour les archives tar) = 3 Go.
Le total des données gravées sur disque dans ce processus était de 2 Go (pour gunzip) + 2 Go (pour les archives tar) + quelques octets pour les métadonnées = environ 4 Go.
Voie 2
Vous avez
blah.tar.gz
, d'une manière ou d'une autre.Vous décidez de courir:
Cette volonté
blah.tar.gz
un bloc à la fois.gzip
décompresseur en mémoire.tar
analyseur de format de fichier, qui lit les informations sur les métadonnées, etc.tar
analyseur de fichiers, elle écrit les données non compressées sur le disque en créant des fichiers et des répertoires et en les remplissant avec le contenu non compressé.Les données totales que nous avons lues à partir du disque au cours de ce processus représentaient 1 Go de données compressées, point à la ligne.
Le total des données gravées sur disque dans ce processus était de 2 Go de données non compressées + quelques octets pour les métadonnées = environ 2 Go.
Si vous remarquez, la quantité d'E / S de disque de la manière 2 est identique à celle d'E / S effectuée par les programmes, par exemple,
Zip
ou 7-Zip , en tenant compte des différences de taux de compression.Et si le taux de compression vous préoccupe, utilisez le
Xz
compresseur pour encapsulertar
, et vous disposez de l' archive TAR de LZMA2 , qui est aussi efficace que l'algorithme le plus avancé disponible pour 7-Zip :-)Partie 2: Caractéristiques
tar
stocke les autorisations Unix dans ses métadonnées de fichier. Il est très bien connu et testé pour compacter avec succès un répertoire avec toutes sortes d’autorisations différentes, des liens symboliques, etc. Il existe plusieurs situations dans lesquelles il peut être nécessaire de déplacer un groupe de fichiers. dans un seul fichier ou flux, mais ne le compressez pas nécessairement (bien que la compression soit utile et souvent utilisée).Partie 3: Compatibilité
De nombreux outils sont distribués sous forme binaire ou source sous forme de fichier .tar.gz ou .tar.bz2, car il s’agit d’un format de fichier "plus petit dénominateur commun": comme la plupart des utilisateurs Windows ont accès aux décompresseurs .zip ou .rar, la plupart des installations Linux , même les plus élémentaires, auront au moins accès à tar et à gunzip, quel que soit leur âge ou leur finesse. Même les firmwares Android ont accès à ces outils.
Les nouveaux projets ciblant des publics utilisant des distributions modernes peuvent très bien être distribués dans un format plus moderne, tel que .tar.xz (utilisant le format de compression Xz (LZMA), qui compresse mieux que gzip ou bzip2), ou .7z, similaire à les formats de fichier ZIP ou RAR , dans la mesure où il compresse et spécifie une présentation pour encapsuler plusieurs fichiers dans un seul fichier.
Vous ne voyez pas que .7z soit utilisé plus souvent pour la même raison que la musique ne soit pas vendue dans les magasins de téléchargement en ligne dans de nouveaux formats comme Opus ou la vidéo dans WebM . Compatibilité avec les utilisateurs de systèmes anciens ou très basiques.
la source
tar
s’intègre dans l’écosystème d’archivage (par exemple, pour agréger des fichiers, ce qui permet d’améliorer les performances et d’autres avantages tels que la sauvegarde des autorisations), sans toutefois expliquer pourquoi des alternatives modernes telles que cellesdar
qui ne sont pas utilisées à la place. En d'autres termes, cette réponse justifie l'utilisation d'agrégateurs de fichiers, mais pas dutar
logiciel en soi.Cela a été répondu sur Stack Overflow .
De nombreux outils sont distribués sous forme binaire ou source sous forme de fichier .tar.gz ou .tar.bz2, car il s’agit d’un format de fichier "plus petit dénominateur commun": comme la plupart des utilisateurs Windows ont accès aux décompresseurs .zip ou .rar, la plupart des installations Linux , même les plus élémentaires, auront accès à au moins
tar
etgunzip
, peu importe leur âge ou leur réduction. Même les firmwares Android ont accès à ces outils.Les nouveaux projets ciblant des publics utilisant des distributions modernes peuvent très bien être distribués dans un format plus moderne, tel que
.tar.xz
(utilisant le format de compression Xz ( LZMA ), qui compresse mieux que gzip ou bzip2), ou .7z, similaire au ZIP ou RAR. formats de fichiers en ce qu’il compresse et spécifie une structure pour encapsuler plusieurs fichiers dans un seul fichier.Vous ne voyez pas que .7z soit utilisé plus souvent pour la même raison que la musique ne soit pas vendue dans les magasins de téléchargement en ligne dans de nouveaux formats comme Opus ou la vidéo dans WebM . La compatibilité avec les utilisateurs de systèmes anciens ou très basiques est importante.
la source
tar.Z
(compresser / décompresser). La progression des utilitaires a été un flux constant (sans jeu de mots) de changement et d'amélioration: Z => zip => gz => bz2 => 7z => xz (ou l'ordre que vous préférez). En ce qui concerne le rôle de tar, certains utilitaires ne font que décompresser / compresser, et exigent toujours que tar intègre des hiérarchies de fichiers.Tar dispose d'un riche ensemble d'opérations et de modificateurs qui connaissent tout des systèmes de fichiers Unix. Il connaît les permissions Unix, les différents temps associés aux fichiers, les liens physiques, les liens symboliques (et la possibilité que des liens symboliques introduisent des cycles dans le graphe du système de fichiers), et vous permet de spécifier plusieurs manières différentes de gérer toutes ces données. .
Voulez-vous que les données extraites préservent les temps d'accès aux fichiers? Tar peut faire ça. Pour conserver les autorisations? Tar peut faire ça.
Voulez-vous conserver les liens symboliques en tant que liens symboliques? Tar le fait par défaut. Voulez-vous copier la cible à la place? Tar peut faire ça.
Voulez-vous être sûr que les données liées en dur ne sont stockées qu’une fois (c’est-à-dire que vous devez agir correctement)? C'est ce que fait Tar.
Voulez-vous gérer correctement les fichiers fragmentés? Tar peut faire ça.
Voulez-vous des données non compressées (pourquoi?)? Tar peut faire ça. Compresser avec gzip? Tar peut faire ça. Avec bzip2? Tar peut faire ça. Avec des programmes de compression externes arbitraires? Tar peut faire ça.
Voulez-vous écrire ou récupérer sur un périphérique brut? Le format de Tar gère cela très bien.
Voulez-vous ajouter des fichiers à une archive existante? Tar peut faire ça. Pour diff deux archives pour voir ce qui a changé? Tar peut faire ça. Pour mettre à jour uniquement les parties de l'archive qui ont changé? Tar peut faire ça.
Voulez-vous être sûr de ne pas archiver sur plusieurs systèmes de fichiers? Tar peut faire ça.
Voulez-vous récupérer uniquement les fichiers plus récents que votre dernière sauvegarde? Tar peut faire ça.
Voulez-vous conserver les noms ou les numéros d'utilisateurs et de groupes? Tar peut faire l'un ou l'autre.
Avez-vous besoin de conserver les nœuds de périphérique (tels que les fichiers dans
/dev
) de sorte qu'après le extraction, le système fonctionne correctement? Tar peut faire ça.Tar évolue depuis des décennies pour gérer de nombreux cas d'utilisation et en sait vraiment beaucoup sur les choses que les gens veulent faire avec les systèmes de fichiers Unix.
la source
f -
et de la diriger vers le compresseur.tar
très souvent pour copier une arborescence de système de fichiers d'un endroit à un autre et conserver les autorisations, etc. La compression, dans ce cas, ne nécessite que des cycles de processeur supplémentaires. Par exempletar cf - * | tar xf - -C /somewhere
.Vous confondez les deux processus distincts d' archivage et de compression .
Raisons pour utiliser un archiveur
Une des raisons d'utiliser l'archivage sans compression est, par exemple, si un groupe de fichiers est copié d'un hôte à un autre. Une commande comme celle-ci
peut considérablement accélérer les choses. Si je sais que les fichiers ne peuvent pas être compressés ou si SSH est configuré avec la compression, vous pouvez économiser un temps processeur considérable. Bien sûr, on peut utiliser un outil de compression plus moderne doté d'une fonction d'archivage et désactiver la compression. L'avantage
tar
est que je peux m'attendre à ce qu'il soit disponible sur tous les systèmes.Raisons pour utiliser un archiveur avec compression gzip
Une des raisons que j'utilise
tar
avecgzip
est: la vitesse! Si je veux transférer quelques gio de fichiers texte d'un endroit à un autre, je me fiche de supprimer les derniers octets, car la compression n'est utilisée que pour le transit, pas pour le stockage à long terme. Dans ces cas-là, j'utilise ungzip
processeur qui ne sollicite pas le processeur au maximum (contrairement à 7-Zip , par exemple), ce qui signifie que je suis lié à nouveau aux E / S et non au processeur. Et encore:gzip
peut être considéré comme disponible partout.Raisons pour l' utilisation
tar
en faveurscp
,rsync
etc.Cela vaut mieux
scp
si vous avez beaucoup de petits fichiers à copier (par exemple, un répertoire de courrier contenant des centaines de milliers de fichiers).rsync
, aussi génial soit-il, pourrait ne pas être disponible partout. De plus, celarsync
ne rapporte vraiment que si une partie des fichiers - ou une version plus ancienne - est déjà présente sur la destination. Pour la copie initialetar
est la plus rapide, avec compression ou sans, en fonction des données réelles.la source
tar cf - . | (cd ~/somewhere; tar xvf -)
. Il est vraiment utile de ne pas attendre que l’index central soit écrit (comme par exemple dans un fichier zip).Ajoutant aux autres bonnes réponses ici, je préfère la combinaison
tar
+gzip|bzip2|xz
principalement parce que ces fichiers compressés sont comme des flux et que vous pouvez les diriger facilement.J'ai besoin de décompresser un fichier disponible sur Internet. Avec l'un
zip
ou l' autre desrar
formats, je dois d'abord le télécharger, puis le décompresser. Avectar.{gz,bz2,xz}
je peux télécharger et décompresser dans la même étape, sans avoir besoin d'avoir l'archive compressée physiquement sur le disque:Cela ne laissera que les fichiers non compressés sur mon disque et accélérera l'ensemble du processus, car je ne perds pas le temps de télécharger tout le fichier et, une fois le téléchargement terminé, je le décompresse. Au lieu de cela, je le décompresse pendant le téléchargement. Vous ne pouvez pas faire cela avec
zip
ou desrar
fichiers.la source
funzip
extrait simplement le premier fichier du fichier zip, pas tous.tar zc /some/folder | ssh user@host "cd /other/folder && tar zx"
Il y a plusieurs raisons de rester avec (GNU) Tar.
Il est:
Si votre problème particulier consiste à "décompresser" une archive avant de pouvoir lire le contenu, vous avez probablement raison. WinRAR et 7-Zip le font automatiquement. Cependant, il existe des solutions simples à ce problème, telles que la documentation du contenu d'une archive sous une forme non compressée.
la source
Les formats de fichiers tels que .zip nécessitent que le logiciel lise d’abord la fin du fichier, puis un catalogue de noms de fichiers. Inversement, tar stocke ces informations avec le flux compressé.
L'avantage de la méthode tar est que vous pouvez décompresser des données tout en les lisant à partir d'un tuyau non recherché, comme un socket réseau.
L'avantage de la méthode zip est que, pour un fichier statique sur disque, vous pouvez parcourir le contenu et les métadonnées sans décompresser d'abord l'ensemble de l'archive.
Les deux ont leurs utilisations, selon ce que vous faites.
la source
Il semble y avoir une certaine réticence à répondre à toutes vos questions directement, avec une préférence apparente d'utiliser votre question comme point de départ pour la pontification. Je vais donc tenter le coup.
En fait, comme tar et gzip sont généralement deux processus, vous obtenez même un avantage considérable en termes de vitesse multicœur qu'un archiveur comme celui d’Info-ZIP ne fournit pas. En termes de taux de compression, tar + gzip sera généralement nettement meilleur que zip avec deflate puisque le premier peut bénéficier de la corrélation entre les fichiers, tandis que le second compresse les fichiers séparément. Cet avantage en termes de compression se traduit par un avantage en termes de vitesse lors de l'extraction, car une archive plus compressée se décompresse en moins de temps.
Oui, tar a été conçu pour Unix et a évolué au fil des années pour pouvoir enregistrer et restaurer de manière précise tous les petits recoins étranges des systèmes de fichiers Unix, même les systèmes de fichiers Unix plus sophistiqués et plus maculaires de Mac OS X. zip est capable de conserver une grande partie des métadonnées telles que les autorisations, les heures, les propriétaires, les groupes et les liens symboliques, mais pas tout. Par exemple, ni zip ni 7z ne peuvent reconnaître ou exploiter les fichiers clairsemés, pas plus qu'ils ne sont conscients ou capables de restaurer des liens physiques.
Beaucoup d'autres bonnes réponses à cela. Le mieux est que cela fonctionne , et vous pouvez continuer à le mettre à jour vers de meilleurs formats de compression (par exemple xz) tout en utilisant le même format tar et même le même utilitaire tar compilé. Si vous voulez simplement emballer un tas d’articles, puis les décompresser à l’autre bout du monde, il n’ya aucune raison d’utiliser autre chose que l’un des logiciels les plus anciens, les plus complets et les plus débogués.
Si vous souhaitez un accès aléatoire, des mises à jour partielles ou tout autre élément nécessitant une gestion fragmentée du contenu, ou si vous souhaitez être en mesure de découvrir le contenu sans lire le contenu dans son intégralité, vous souhaitez utiliser un format différent.
la source
Performance
La grande différence réside dans l'ordre dans lequel la compression et l'archivage sont effectués. Dans les
tar
archives, vous pouvez éventuellement envoyer l'archive à un compresseur, etzip
construire l'archive, puis compresser les données de fichier en morceaux de 32 Ko au fur et à mesure de leur insertion dans l'archive. En divisant les données de fichier en petits morceaux et en les compressant séparément, il vous permet d'extraire des fichiers spécifiques ou des parties de fichiers sans avoir à décompresser tout ce qui se trouve dans l'archive. Cela empêche également le compresseur de créer un dictionnaire très volumineux avant son redémarrage. Cela signifie que la compression ira plus vite, mais ne donnera pas un aussi bon rapport que de compresser le tout avec une plus grande taille de dictionnaire.Vous pouvez le visualiser en pensant à deux fichiers, où les 500 premiers octets du deuxième fichier sont les mêmes que les 500 derniers octets du premier fichier. Avec cette
zip
méthode, le compresseur est redémarré pour le deuxième fichier. Par conséquent, il ne se souvient pas que le premier fichier s'est terminé avec les mêmes données. Il ne peut donc pas supprimer les données en double du deuxième fichier.Popularité
Il existe de nombreux autres formats qui présentent de nombreux avantages
tar
. 7-Zip ne stocke pas les autorisations de fichiers Unix, mais ledar
fait etzip
peut le faire, et les trois stockent un index, ce qui permet une navigation rapide, l'extraction d'un sous-ensemble de fichiers et la mise à jour de fichiers dans l'archive. Ils peuvent également utiliser des processeurs multicœurs pour la compression.La raison pour laquelle tout le monde utilise encore
tar
est la même que tout le monde utilise toujours Windows et Flash : les gens n'aiment pas les changements. Sans une raison solide de changer, les gens s'en tiennent à ce qu'ils savent.dar
ne présente pas un avantage suffisant pour justifier la publication de fichiers dans le format lorsque la plupart des utilisateurs sont déjàtar
installés et que très peu de gens le saventdar
, donc la simple inertie nous permet de conserver l’ancien standard.la source
Tar a été créé pour faire des sauvegardes de votre système de fichiers en toute fidélité, pas seulement pour le transfert de fichiers. En tant que tel, l'utilitaire tar est l'utilitaire le plus complet pour créer une archive qui conserve tout ce qui est important pour la structure de votre système de fichiers.
Cela inclut toutes les fonctionnalités manquantes dans un ou plusieurs outils concurrents:
Il a également l'
--one-file-system
option qui est extrêmement utile lors de la sauvegarde.Chaque fois qu'une nouvelle fonctionnalité est ajoutée aux systèmes de fichiers, le support est ajouté en
tar
premier (ou même exclusivement). Donc, il continue à être le moyen le plus compatible pour enregistrer des fichiers.la source
Nous avons beaucoup de fichiers compressés qui circulent aujourd'hui, MP3, JPG, vidéos, fichiers tar.gz, packages JAR, RPM, DEB, etc. Si vous devez regrouper plusieurs de ces éléments dans un seul fichier pour le transfert, il est utile de disposer d'un utilitaire 'tar' qui regroupe uniquement les fichiers sans tenter de les compresser.
Tenter de compresser un fichier compressé consomme non seulement du temps et de l’électricité, mais il en résulte souvent un fichier plus volumineux que le fichier original.
Une autre utilisation consiste à améliorer les taux de compression. Par exemple, si vous «archivez» un ensemble de fichiers journaux, puis gzip le résultat, vous obtiendrez probablement un fichier plus petit que si vous aviez compressé en premier, puis regroupé avec «tar». Et bien sûr, en utilisant tar, vous pouvez choisir n’importe quel algorithme de compression et spécifier des options pour optimiser la compression en fonction de votre cas d’utilisation.
Je trouve que tar 'est très pertinent aujourd'hui et je préfère qu'il utilise ZIP. Dans notre bureau, 7-zip sont installés sur tous les utilisateurs de Windows. Par conséquent, les fichiers tar sont entièrement compatibles entre plates-formes.
la source
tar
fichiers non compressés et il y a une raison à cela.tar
utilise de très gros morceaux, ce qui signifie que vous obtenez beaucoup de bourrage à la fin des fichiers. Pour se débarrasser de tous ces zéros, il est presque toujours rentable de simplement utilisergzip
sans y penser à deux fois.Peut-être devrions-nous nous demander pourquoi ces "nouveaux" formats de fichier effectuant à la fois la compression et l'agrégation (et j'ajouterais un cryptage) ne sont pas construits sur tar dès le début au lieu d'outils complètement différents.
Si j'ai bien compris, il existe des raisons historiques (liées à l'historique du système d'exploitation, à la "protection" des brevets, à la capacité du vendeur de logiciels à vendre des outils, etc.).
Maintenant, comme l’a souligné une autre réponse, tar n’est pas clairement inférieur à d’autres solutions et peut être meilleur pour d’autres aspects, comme la capacité de travailler sur des flux ou la gestion des droits Unix.
Si vous lisez l'article de Wikipédia sur le goudron, vous constaterez un autre fait intéressant. L'article reconnaît certaines lacunes de tar ... mais ne suggère pas d'utiliser plutôt le zip (le format zip ne résout pas ces inconvénients) mais plutôt le DAR.
Je vais finir avec une touche personnelle. Il y a quelques temps, j'ai dû créer un format de fichier pour stocker des données cryptées. Utiliser tar comme base était pratique (d'autres ont fait le même choix, par exemple, tar est le format d'agrégation interne des packages .deb). Il était évident pour moi qu'essayer de compresser les données après le cryptage était totalement inutile, je devais effectuer la compression comme une étape indépendante avant le cryptage et je n'étais pas non plus prêt à utiliser le cryptage zip (je voulais un cryptage à deux clés avec des clés publique et privée) . L'utilisation de goudron a fonctionné comme une brise.
la source
Je suis surpris que personne ne l’ait mentionné, mais l’une des raisons - pas vraiment un avantage, mais une nécessité - est liée à la compatibilité ascendante. Pendant des décennies, de nombreux systèmes exécutant des logiciels pourraient nécessiter
tar
un archivage. Il n'est pas rentable d'engager quelqu'un pour "réparer" tous les anciens systèmes.la source
tar est UNIX comme UNIX est tar
À mon avis, la raison pour laquelle nous utilisons encore
tar
aujourd'hui est que c'est l'un des cas (probablement les plus rares) où l'approche UNIX l'a parfaitement faite dès le début.En examinant de plus près les étapes de la création d'archives, j'espère que vous conviendrez que la séparation des tâches se déroule ici dans le sens de la philosophie UNIX :
un outil (
tar
pour lui donner un nom ici) spécialisé dans la transformation de toute sélection de fichiers, répertoires et liens symboliques, y compris toutes les méta-données pertinentes, telles que les horodatages, les propriétaires et les autorisations, en un flux d'octets.et juste un autre outil arbitrairement interchangeable (
gzip
bz2
xz
pour ne nommer que quelques options) qui transforme n'importe quel flux d'octets d'entrée en un autre flux de sortie (espérons-le) plus petit.L'utilisation d'une telle approche offre de nombreux avantages à l'utilisateur ainsi qu'au développeur:
extensibilité Permet de coupler
tar
avec n'importe quel algorithme de compression déjà existant ou avec n'importe quel algorithme de compression restant à développer sans avoir à changer quoi que ce soit dutar
tout.Dès que le tout nouvel outil de compression "hyper-zip-utra" ou Whater est disponible, vous êtes déjà prêt à l'utiliser et vous en donne toute la puissance
tar
.La stabilité
tar
est très utilisée depuis le début des années 80, et a été utilisée sur de nombreux systèmes d'exploitation et machines.Empêcher la nécessité de réinventer la roue en mettant en œuvre le stockage de la propriété, des autorisations, des horodatages, etc. , pour chaque nouvel outil d'archivage, non seulement fait gagner beaucoup de temps (sinon inutilement) au développement, mais garantit également la même fiabilité pour chaque nouvelle application.
cohérence L'interface utilisateur reste la même tout le temps.
Il n'est pas nécessaire de se rappeler que pour restaurer les autorisations à l'aide de l'outil A, vous devez passer l'option
--i-hope-you-rember-this-one
et utiliser l'outil B, vous devez utiliser--this-time-its-another-one
lorsque vous utilisez l'outil C, il s'agit de `--hope-you-didnt-try-with-tool-as-switch.Tandis qu'en utilisant l'outil D, vous l'auriez vraiment foiré si vous ne l'aviez pas utilisé
--if-you-had-used-tool-bs-switch-your-files-would-have-been-deleted-now
.la source
Beaucoup de bonnes réponses, mais elles négligent toutes un fait important. Tar possède un écosystème bien établi d'utilisateurs et de développeurs dans le monde semblable à Unix. Cela le maintient, tout comme ZIP est maintenu par son écosystème DOS / Windows. Avoir un tel écosystème est ce qui fait vivre une technologie, pas ses avantages techniques.
la source
La raison est "enracinée dans la culture". Il y a de nombreuses personnes comme moi dont les yeux brillent lorsqu'on leur demande de traiter autre chose qu'une archive compressée au format tar, ou un fichier ZIP occasionnel, si elle provenait du monde Windows.
Je ne veux pas entendre parler de 7-Zip, RAR ou autre chose. Si je dois installer un programme pour décompresser votre fichier, cela fonctionne. Je le ferai s'il en résulte que je suis payé, ou si le contenu est quelque chose que je "dois avoir" et n'est pas disponible de toute autre manière.
Un des avantages de tar est que si vous envoyez une archive à une personne, celle-ci est immédiatement reconnue. Le destinataire peut taper les commandes d’extraction en utilisant la mémoire musculaire.
La vraie question est: pourquoi certaines personnes sont-elles si obsédées par la sauvegarde d'un octet d'espace supplémentaire qu'elles demandent à tout le monde de perdre du temps à installer un utilitaire exotique et à apprendre à l'utiliser? Et puis, il y a les utilisations stupides des formats de compression et d'archives exotiques. Une vidéo H.264 avec son AAC doit-elle vraiment être insérée dans un fichier RAR en plusieurs parties?
Le format tar est peut-être ancien, mais il stocke tout ce qui est pertinent: contenu du fichier, chemins d'accès, horodatage, autorisations et droits de propriété. Il stocke non seulement des liens symboliques, mais il peut préserver la structure des liens durs. Il stocke également des fichiers spéciaux, de sorte qu'une archive sur bande peut être utilisée pour des tâches telles qu'un
/dev
répertoire de minature utilisé lors de l'amorçage. Vous pouvez assembler une distribution Linux dont le format de paquet binaire ne contient rien, à l'exception des archives tarball non compressées par rapport à la racine du système de fichiers.la source
Répondre directement aux questions spécifiques que vous avez posées:
Il existe une amélioration spécifique des performances, dans les cas généraux, en utilisant
tar
notamment la bibliothèque de compression intégrée (les lignes de commande de styletar xvzf
outar xvjf
, dans lesquelles une bibliothèque de compression est utilisée plutôt qu'un second processus). Cela provient de deux causes principales:lors du traitement d'un grand nombre de fichiers relativement petits, en particulier ceux couramment utilisés pour la distribution de logiciels, la redondance est élevée. La compression sur de nombreux fichiers entraîne une compression globale plus élevée que la compression de fichiers individuels. Et le "dictionnaire" est calculé une fois pour chaque bloc d'entrée, pas pour chaque fichier.
tar
comprend les systèmes de fichiers. Il est conçu pour enregistrer et restaurer un système d'exploitation opérationnel. Il saisit profondément ce qui est important sur un système de fichiers UNIX, et le capture et le restitue fidèlement. Autres outils ... pas toujours, en particulier la famille zip, qui est mieux conçue pour le partage de fichiers entre plusieurs systèmes d’exploitation, où le document est l’important, et non une copie fidèle sensible au système d’exploitation.Traitement de fichiers clairsemés. Certaines bibliothèques de bases de données directes reposent sur des fichiers fragmentés - des fichiers dont les données sont nominalement en Go, mais les données réelles écrites et stockées sont beaucoup, beaucoup moins, et seuls quelques blocs de disque sont réellement utilisés. Si vous utilisez un outil non détecté, alors lors de la décompression, vous vous retrouvez avec une consommation massive de blocs de disque, contenant tous des zéros. Remettre cela dans un fichier fragmenté est ... douloureux. Si vous avez même la pièce pour le faire. Vous avez besoin d'un outil qui saisisse ce qu'est un fichier fragmenté et qui le respecte.
Métadonnées. Unix a évolué avec des choses étranges au fil des ans. Noms de fichier à 14 caractères, noms de fichier longs, liens liens sym, sticky bits, bits de superutilisateur, autorisations d'accès de groupe héritées, etc. Tar les comprend et les reproduit. Outils de partage de fichiers ... pas tellement. Beaucoup de gens n'utilisent pas les liens comme ils pourraient le faire ... Si vous avez déjà travaillé avec un logiciel utilisant des liens, puis ayant utilisé un outil non averti pour la sauvegarde et la restauration, vous disposez désormais de nombreux outils indépendants. fichiers, au lieu d'un seul fichier avec plusieurs noms. Douleur. Votre logiciel échoue et votre disque est gonflé.
tar
travaux. Il fait le travail pour lequel il est conçu, eh bien. Il y a eu d' autres remplacements vantés (cpio
,pax
, etc, etc). Mais tar est installé sur à peu près tout, et les bibliothèques de compression qu’il utilise sont également très courantes pour d’autres raisons. Rien d’autre n’est venu qui vienne vraiment battre ce que fait le goudron. En l'absence d'avantages clairs, et de beaucoup d'utilisation intégrée et de connaissances dans la communauté, il n'y aura pas de remplacement. Le tar a beaucoup servi au fil des ans. Si nous obtenons des changements majeurs dans la manière dont nous pensons aux systèmes de fichiers, des fichiers non-texte deviennent en quelque sorte le moyen de transférer du code (vous ne pouvez pas imaginer comment, mais ignorez cela ...), vous pourrez alors trouver un autre outil. Mais alors ce ne serait pas le type de système d'exploitation que nous utilisons maintenant. Ce serait une chose différente, organisée différemment et elle aurait besoin de ses propres outils.Je pense que la question la plus importante que vous n’avez pas posée est celle de savoir à quel emploi "tar" correspond mal.
tar
avec compression est fragile. Vous avez besoin de toutes les archives, bit par bit. D'après mon expérience, ce n'est pas résilient. Des erreurs sur un seul bit ont rendu les archives multi-parties inutilisables. Il n'introduit pas de redondance pour se protéger contre les erreurs (ce qui éliminerait l'une des questions que vous avez posées, à propos de la compression des données). S'il existe un risque de corruption des données, vous souhaitez une vérification des erreurs avec redondance afin de pouvoir reconstruire les données. Cela signifie, par définition, que vous n'êtes pas compressé au maximum. Vous ne pouvez pas avoir tous les deux des données requises et portant leur valeur maximale de sens (compression maximale) et des données pouvant être perdues et restaurées (redondance et correction d'erreur). Alors ... quel est le but de vos archives?tar
est idéal dans les environnements très fiables et lorsque les archives peuvent être reproduites à partir des sources. IME, c'est en fait pire avec la chose originale suggérée par leurs noms - l'archivage sur bande. Les erreurs sur un seul bit sur une bande (ou pire, les erreurs sur un seul bit dans une tête de bande, où vous perdez un bit dans chaque octet d'une bande ou d'une archive entière) ont pour effet de rendre les données inutilisables. Avec une redondance et une détection et une correction des erreurs suffisantes, vous pouvez surmonter l'un ou l'autre de ces problèmes.Alors ... combien de bruit et de corruption y a-t-il dans l'environnement que vous étudiez, et la source peut-elle être utilisée pour régénérer une archive défaillante? La réponse, à partir des indices que vous avez fournis, est que le système n’est pas bruyant et que cette source est capable de régénérer une archive. Dans ce cas,
tar
est suffisant.tar
avec la compression aussi ne joue pas bien avec les fichiers pré-compressés. Si vous envoyez des données déjà compressées ... utilisez simplement tar et ne vous occupez pas de la phase de compression - cela ajoute simplement des cycles de processeur pour ne pas trop en faire. Cela signifie que vous devez savoir ce que vous envoyez et pourquoi. Si c'est important pour vous. Si vous ne vous souciez pas de ces cas particuliers, alors tar copiera fidèlement les données et la compression échouera . Pas de gros problème, à part quelques cycles du processeur.la source
TAR est une archive de bande. Il existe depuis des décennies et il est largement utilisé et pris en charge. C'est un produit mature qui répond aux besoins actuels et anciens.
la source