Direkte Beantwortung der von Ihnen gestellten Fragen:
Gibt es während der Aggregations- / Komprimierungs- / Dekomprimierungsphasen Leistungseinbußen für die Verwendung von in gzip oder bzip2 gekapseltem Teer im Vergleich zur Verwendung eines Dateiformats, das Aggregation und Komprimierung in derselben Datenstruktur ausführt? Angenommen, die Laufzeit des zu vergleichenden Kompressors ist identisch (z. B. gzip und Deflate sind ähnlich).
Im Allgemeinen wird eine bestimmte Leistungsverbesserung erzielt, tar
insbesondere bei Verwendung der integrierten Komprimierungsbibliothek (der Befehlszeilen tar xvzf
oder tar xvjf
, bei denen eine Komprimierungsbibliothek anstelle eines zweiten Prozesses verwendet wird). Dies hat zwei Hauptursachen:
Bei der Verarbeitung einer großen Anzahl relativ kleiner Dateien, insbesondere bei der Verteilung von Software, besteht eine hohe Redundanz. Das Komprimieren mehrerer Dateien führt zu einer höheren Gesamtkomprimierung als das Komprimieren einzelner Dateien. Und das "Wörterbuch" wird einmal für jeden Teil der Eingabe berechnet, nicht für jede Datei.
tar
versteht Dateisysteme. Es wurde entwickelt, um ein funktionierendes / funktionsfähiges Betriebssystem zu speichern und wiederherzustellen. Es erfasst genau das, was auf einem UNIX-Dateisystem wichtig ist, und stellt dies getreu wieder her. Andere Tools ... nicht immer, insbesondere die zip-Familie, die besser für die gemeinsame Nutzung von Dateien unter Betriebssystemen geeignet ist, bei denen es auf das Dokument ankommt und nicht auf die Vertraulichkeit des Betriebssystems ankommt.
Gibt es Funktionen des Dateiformats tar, die andere Dateiformate wie .7z und .zip nicht haben?
Sparsame Dateiverwaltung. Einige der direkten Datenbankbibliotheken basieren auf spärlichen Dateien - Dateien, bei denen die Daten nominal GB sind, die tatsächlich geschriebenen und gespeicherten Daten jedoch viel, viel weniger sind und nur wenige Plattenblöcke tatsächlich verwendet werden. Wenn Sie ein unbekanntes Tool verwenden, wird beim Dekomprimieren massiv Festplattenblock verbraucht, der alle Nullen enthält. Das wieder in eine dünne Datei umzuwandeln ist ... schmerzhaft. Wenn Sie sogar den Raum haben, um es zu tun. Sie benötigen ein Tool, das erfasst, was eine dünne Datei ist, und das berücksichtigt.
Metadaten. Unix hat im Laufe der Jahre einige seltsame Dinge entwickelt. Dateinamen mit 14 Zeichen, lange Dateinamen, Links, Sym-Links, Sticky-Bits, Superuser-Bits, vererbte Gruppenzugriffsberechtigungen usw. Tar versteht und reproduziert diese. Filesharing-Tools ... nicht so sehr. Viele Leute verwenden Links nicht so, wie sie es könnten ... Wenn Sie jemals mit Software gearbeitet haben, die Links verwendet, und dann ein nicht bewusstes Tool zum Sichern und Wiederherstellen verwendet haben, haben Sie jetzt viele unabhängige Dateien anstelle einer einzelnen Datei mit vielen Namen. Schmerzen. Ihre Software schlägt fehl und die Festplatte ist aufgebläht.
Da tar ein so altes Dateiformat ist und es heutzutage neuere Dateiformate gibt, warum wird tar (ob in gzip, bzip2 oder sogar dem neuen xz gekapselt) unter GNU / Linux, Android, BSD und anderen UNIX-Betriebssystemen immer noch so häufig verwendet Betriebssysteme, für Dateiübertragungen, Programmquellen- und Binärdownloads und manchmal sogar als Paketmanager-Format?
tar
funktioniert. Es macht den Job, für den es entworfen ist, gut. Es wird angepriesen Ersatz gewesen andere ( cpio
, pax
etc, etc). Aber tar ist auf so ziemlich allem installiert, und die Komprimierungsbibliotheken, die es verwendet, sind auch aus anderen Gründen sehr verbreitet. Es ist nichts anderes hinzugekommen, das wesentlich besser ist als das, was Teer tut. Ohne klare Vorteile und viele eingebettete Anwendungen und Kenntnisse in der Community wird es keinen Ersatz geben. Teer wurde im Laufe der Jahre viel benutzt. Wenn wir größere Änderungen in der Art und Weise bekommen, wie wir an Dateisysteme denken, oder wenn Nicht-Text-Dateien die Art und Weise werden, Code zu übertragen (kann mir derzeit nicht vorstellen, wie, aber ignoriere das ...), dann könnten Sie ein anderes Tool finden. Aber das wäre dann nicht die Art von Betriebssystem, die wir jetzt verwenden. Es wäre eine andere Sache, anders organisiert und es würde seine eigenen Werkzeuge brauchen.
Ich denke, die wichtigste Frage, die Sie nicht gestellt haben, ist, wofür Jobs "Teer" nicht geeignet sind.
tar
mit Kompression ist zerbrechlich. Sie brauchen das gesamte Archiv, Stück für Stück. Nach meiner Erfahrung ist es nicht belastbar. Ich habe Einzelbitfehler gehabt, die dazu geführt haben, dass mehrteilige Archive unbrauchbar wurden. Es wird keine Redundanz zum Schutz vor Fehlern eingeführt (wodurch eine der von Ihnen gestellten Fragen zur Datenkomprimierung beantwortet wird). Wenn die Möglichkeit einer Datenbeschädigung besteht, möchten Sie eine Fehlerprüfung mit Redundanz durchführen, damit Sie die Daten rekonstruieren können. Das bedeutet per definitionem, dass Sie nicht maximal komprimiert sind. Sie können nicht beide Daten benötigen und ihren maximalen Bedeutungswert (maximale Komprimierung) haben und jedes Datenbit kann verloren gehen und wiederhergestellt werden (Redundanz und Fehlerkorrektur). Also ... was ist der Zweck Ihres Archivs?tar
eignet sich hervorragend für Umgebungen mit hoher Zuverlässigkeit und wenn das Archiv wieder von der Quelle reproduziert werden kann. IME, es ist tatsächlich schlimmer, als die ursprünglichen Namen vermuten lassen - die Bandarchivierung. Einzelbitfehler auf einem Band (oder schlimmer noch Einzelbitfehler in einem Bandkopf, bei denen Sie ein Bit pro Byte eines ganzen Bandes oder Archivs verlieren) führen dazu, dass die Daten unbrauchbar werden. Mit einer ausreichenden Redundanz und Fehlererkennung und -korrektur können Sie eines dieser Probleme bewältigen.
Also ... wie viel Lärm und Korruption gibt es in der Umgebung, die Sie betrachten, und kann die Quelle verwendet werden, um ein fehlgeschlagenes Archiv neu zu generieren? Aus den von Ihnen angegebenen Hinweisen geht hervor, dass das System nicht verrauscht ist und dass diese Quelle in der Lage ist, ein Archiv neu zu generieren. In welchem Fall tar
ist ausreichend.
tar
mit Komprimierung funktioniert auch nicht mit vorkomprimierten Dateien. Wenn Sie bereits komprimierte Daten verschicken ... verwenden Sie einfach tar und kümmern Sie sich nicht um die Komprimierungsstufe - es werden lediglich CPU-Zyklen hinzugefügt, um nicht viel zu tun. Das bedeutet, dass Sie wissen müssen, was Sie senden und warum. Falls es dich interessiert. Wenn Sie sich nicht für diese Sonderfälle interessieren, kopiert tar die Daten originalgetreu und komprimiert sie nicht , um sie zu verkleinern. Kein großes Problem, abgesehen von einigen CPU-Zyklen.
tar xvzf
ist schwieriger als7z -x
...