In meinem Unternehmen laden wir einen lokalen Entwicklungsdatenbank-Snapshot als db.dump.tar.gz
Datei herunter . Die Komprimierung ist sinnvoll, aber der Tarball enthält nur eine einzige Datei ( db.dump
).
Gibt es irgendeinen Grund, eine einzelne Datei zu archivieren, oder handelt es sich .tar.gz
nur um eine solche gebräuchliche Redewendung? Warum nicht einfach .gz
?
tar
compression
archive
Gartenkopf
quelle
quelle
tar -zxvf
. Aber für diejenigen, die sich den Dateinamen ansehen und feststellen, dass er keine.tgz
Endung hat, ist es vollkommen in Ordnung, die Db-Dump-Datei mit gzip zu versehen. Da ich die Komprimierungsalgorithmen nicht genau kenne, bin ich mir nicht sicher, ob tar eine Komprimierung für spärliche Dateien wie db dump vornimmt. Bei Nur-Text-Dateien hat das direkte GZIP der Datei jedoch einen winzigen Größenvorteil gegenüber dem Tarieren zuerst und GZIP die Datei.tar.gz
, dass sie den meisten anderen gängigen Methoden überlegen sind. Ich erinnere.tar
mich, dass es besser war als nur, aber ich kann mich nicht erinnern, ob es besser war als nur.gz
. Ironischerweise war Window's.cab
Format die beste Methode, die ich ausprobiert habe, was sehr unerwartet war.tar
ist kein Komprimierungsalgorithmus, sondern ein ArchivierungsformatAntworten:
Vorteile der Verwendung
.tar.gz
anstelle von.gz
sind, dasstar
speichert mehr Metadaten (UNIX-Berechtigungen usw.) alsgzip
.Der Aufwand für die Verwendung
tar
ist ebenfalls sehr gering.Wenn es nicht wirklich benötigt wird, empfehle ich immer noch nicht, eine einzelne Datei zu tarieren. Es gibt viele nützliche Tools , die direkt komprimiert einzelne Dateien zugreifen können (wie zum Beispiel
zcat
,zgrep
usw. - auch die bestehenden fürbzip2
undxz
).quelle
.gz
, ist mein erster Instinkt zutar -zxf foo.gz
. Das Erinnern daran, dass gzip sogar ein Befehl ist, dauert noch ein paar Sekunden.z
(oder das-
für diese Angelegenheit),tar
erkennen die meisten modernen s automatisch, dass die Datei dekomprimiert werden muss.gzip
werden der ursprüngliche Dateiname und der Zeitstempel gespeichert. Sie können diese-N
Option beim Dekomprimieren verwenden, um sie wiederherzustellen.Sie stellen tatsächlich nur die Hälfte der Frage. Die andere Frage lautet: "Warum sollte ich eine TAR-Datei mit gzip komprimieren?". Und die Antwort ist nicht nur,
gzip
dass die Datei kleiner wird (in den meisten Fällen):tar
:gzip
:Mit nur
tar
Sie können nicht sicher sein, dass Ihre Daten nicht beschädigt wurden. Mit nur könnengzip
Sie keine Benutzer- / Gruppen-ID, Änderungszeit und möglicherweise nicht den ursprünglichen Dateinamen wiederherstellen.Die Kombination ist mächtiger als die einzelnen commmands / Formate bieten, weil sie jeweils andere Funktionen ergänzen .
quelle
tar
Wikipedia-Seite las , habe ich die Beschreibung falsch verstanden, um zu bedeuten, dass die Prüfsumme für die gesamte Datei war.Es ist ein ziemlich großer Vorteil der Verwendung von nur-gzipped Textdateien - der Inhalt kann direkt mit Kommandozeilen - Tool wie zugegriffen werden
less
,zgrep
,zcat
.quelle
Ich würde sagen, es ist wahrscheinlich, dass die Leute einfach nicht erkennen, dass sie gzip / bzip2 / xz ohne tar verwenden können. Möglicherweise, weil sie aus einem DOS / Windows-Hintergrund stammen, in dem Komprimierung und Archivierung normalerweise in einem einzigen Format ( ZIP , RAR usw.) integriert sind.
Obwohl die Verwendung von tar in einigen Situationen aufgrund der Speicherung von Metadaten oder der Möglichkeit, zusätzliche Dateien hinzuzufügen, geringfügige Vorteile haben kann, gibt es auch Nachteile. Mit einer einfachen gzip / bzip2 / xz-Datei können Sie sie dekomprimieren und die dekomprimierten Daten direkt an ein anderes Tool (z. B. Ihre Datenbank) weiterleiten, ohne die dekomprimierten Daten jemals als Datei auf der Festplatte speichern zu müssen. Mit einem Tarball ist das schwieriger.
quelle
tgz
Erweiterung. Der OP-Fall verwendet jedochtar.gz
- und wenn diese hypothetischen Ex-Win / DOS-Benutzer so sind wie ich, sagen sie beim Betrachten einer solchen Datei als Erstes: 'Warum hat sie zwei Erweiterungen?'. Dann googeln sie es und erhalten schnell die Antwort, was genau erklärt, dasstar
und Komprimierung unterschiedlich sind. ;-)Es gibt einen wichtigen Unterschied, der
tar
unter bestimmten Umständen die Verwendung von wichtig machen könnte : Neben den "Metadaten", die @jofel in seiner Antwort erwähnt hat, wirdtar
der Dateiname im Archiv aufgezeichnet . Wenn Sie es extrahieren, erhalten Sie den ursprünglichen Dateinamen, unabhängig davon, wie das Archiv aufgerufen wird.In Ihrem Fall haben das Tar-Archiv und die darin enthaltene Datei die entsprechenden Namen
db.dump.tar.gz
unddb.tar
, aber nehmen Sie an, Sie benennen die Tar-Datei in20-Apr-16.dump.tgz
oder was auch immer um. Wenn Sie dies mit enttarnentar xvfz
, erhalten Siedb.dump
. Zum Vergleich: Entpacken20-Apr-16.dump.gz
und fertig20-Apr-16.dump
. (Bearbeiten: Wie in den Kommentaren erwähnt, zeichnet gzip auch den Dateinamen auf; er wird jedoch normalerweise beim Entpacken nicht verwendet.) Eintar
Archiv kann auch einen relativen Pfadnamen enthalten, der die extrahierte Datei in ein Unterverzeichnis legt.Ihr Anwendungsfall bestimmt, ob diese Art der Dateinamensbeständigkeit erforderlich oder sogar erwünscht ist oder tatsächlich unerwünscht ist. Unabhängig von der Komprimierung bewegt sich ein
tar
Archiv jedoch anders als eine normale Datei.quelle
gzip --name
beim Dekomprimieren explizit verwenden), aber Sie müssen nicht tar verwenden, um die Dateinamenbeständigkeit zu erhalten.Zusätzlich zu all den anderen Antworten habe ich kürzlich eine Skriptsituation festgestellt, in der nur eine Datei erwartet wurde, aber ein vorheriger Mitarbeiter die Skripts mit der Möglichkeit geschrieben hat, dass mehr als eine Datei generiert wird. So wurden Dateien geteert und bzipped, dann übertragen und erweitert.
Wenn der Prozess so weit fortgeschritten war, dass eine 4,3-GB-Datei erstellt wurde, wurde ein Rollover ausgeführt und zusätzlich zu einer Dump-Datei eine Dump.001-Datei erstellt. Alle Skripte haben einfach weitergearbeitet.
Das ist proaktive Sysadmin-Faulheit!
quelle
Ich würde eine einzelne Datei tarieren, um sie unter Beibehaltung des Zeitstempels (der beim Herunterladen leicht übersehen wird) zu kopieren. Dateiberechtigungen und Eigentumsrechte sind weniger wichtig: Download ist ein Begriff, der für Systeme gilt, die nicht gut integriert sind.
Unabhängig davon, ob tar'd oder nicht, ist es üblich, die Datei zu komprimieren, um das Herunterladen zu beschleunigen - und zu vermeiden, dass der Speicherplatz knapp wird.
quelle
Tar ist besonders nützlich für mehrere Dateien, die nicht in ein formales Dateisystem geschrieben wurden. Wenn es aus irgendeinem Grund gelegentlich nur eine zu schreibende Datei gibt, hat dies keine wirkliche Konsequenz. Ich kann meine .tar.gz direkt nach / dev / sdx kopieren, ohne Rücksicht auf Partition oder Dateisystem. Es kann sich auch um Klebeband handeln.
Dies geschieht in der Regel, weil das Skript oder der Prozess aus dem Erbe-Code kopiert wurde. Natürlich müssen Sie nicht tarieren, wenn es nur eine Datei gibt, aber es bleibt Platz für die Erweiterung auf mehrere Dateien ......
quelle