Wie packen Sie eine Datei und behalten die .gz-Datei?
191195
Sen
Das Standardverhalten von gunzip ist das Löschen der GZ-Datei, nachdem diese dekomprimiert wurde.
Wie kann ich verhindern, dass die Datei gelöscht wird?
Wenn diese Funktionalität nicht enthalten ist, gibt es ein alternatives Programm, das dies erlaubt?
Ich verwende Ubuntu 9.04
Verwenden Sie den folgenden Befehl: gunzip -k
fazineroso vor 9 Jahren
3
welche gunzip -k Option hat? Ich sehe niemanden
Znik vor 8 Jahren
0
@Znik, * gzip / gunzip * Version 1.6 und höher [hat die Option "-k"] (http://git.savannah.gnu.org/cgit/gzip.git/commit/?id=0192f02e26ac9fa0a27a17a26a3ea73d5e95c).
alexander barakin vor 8 Jahren
1
Der gzcatBefehl entspricht dem, in gunzip -cden der Ausgabestrom einfach geschrieben wird stdout. Dadurch bleibt die komprimierte Datei erhalten. So können Sie auch verwenden:
gunzip -c x.txt.gz >x.txt
Beachten Sie, dass auf einigen Systemen gzcat auch als zcatso bezeichnet wird:
zcat x.txt.gz >x.txt
Danke für die Antwort. Mit pkunzip in DOS aufzuwachsen finde ich es so seltsam, dass es keine Option gibt, die Datei zu behalten. Vor allem, wenn ein Werkzeug wie gzip so weit verbreitet ist ... einfach komisch.
Sen vor 15 Jahren
2
Zu Ihrer Information, ich habe eigentlich kein gzcat. Weder mein lokales System noch das System, in das ich eingebunden wurde. Also muss ich gunzip -c verwenden
Sen vor 15 Jahren
4
Es ist wahrscheinlich nur Zcat auf Ihrem System.
user23307 vor 14 Jahren
23
Eine zusätzliche Option zum Speichern der Datei wäre in der Tat eine nette Sache. Zum Beispiel verwendet b (un) zip2 eine ähnliche Syntax und erlaubt das Hinzufügen von -k, um die Originaldatei beizubehalten.
schnaader vor 13 Jahren
2
Sie können auch den Zeilenalias gzcat = "gunzip -c" zu Ihrem .bashrc hinzufügen
James Kingsbery vor 12 Jahren
1
@Sen: pkunzip ist direkter vergleichbar mit tar -xzf ; Es extrahiert mehrere Dateien aus einer komprimierten Datei und entfernt die komprimierte Datei nicht. In * NIX-Systemen werden die Konzepte "Mehrere Dateien bündeln" und "Daten komprimieren" nicht wie bei .zip kombiniert. Das heißt, wenn neue Komprimierungssysteme auf den Markt kommen, müssen wir den Code / die Logik "Bündeln mehrerer Dateien" nicht neu erfinden / erneut implementieren.
retracile vor 12 Jahren
0
Lassen Sie mich @JamesKingsbery klarstellen, wo die Zeile beginnt und endet `alias gzcat =" gunzip -c "` ... Natürlich macht es mir nichts aus, nur `zcat 'zu verwenden. Weniger Tippen, energieeffizienter;)
Buttle Butkus vor 11 Jahren
0
Während diese Antwort mir geholfen hat, möchte ich immer noch den Mann bestrafen, der diesen Befehl entworfen hat und entschied, dass das destruktive Verhalten der Standard sein sollte.
donquixote vor 10 Jahren
0
@schnaader sieht aus, als hätte gunzip ab Version 1.6 die Option --keep unterstützt ...
Jacob vor 10 Jahren
1
Ah, danke Jakob! @paxdiablo, können Sie die Antwort so bearbeiten, dass sie ein Beispiel für die Funktion -k gibt? (http://savannah.gnu.org/forum/forum.php?forum_id=7623, Absatz "Neue Funktionen")
schnaader vor 10 Jahren
0
Diese Prozedur funktioniert nicht, wenn der Anfang der Datei beschädigt ist.
Znik vor 8 Jahren
0
52
Stef
Sie können die -cOption gunzip verwenden, die die Ausgabe in stdout schreibt und dann an die Datei Ihrer Wahl weiterleitet:
Beachten Sie übrigens, dass in der oben genannten Manpage eine Option -k aufgeführt ist, dh Eingabedateien behalten. Vielleicht funktioniert das auf der BSD-Version, aber auf meiner nicht, daher scheint die -c-Lösung die richtige zu sein.
vor 14 Jahren
0
31
retracile
Eine einfachere Lösung ist die Verwendung von gunzip als Filter wie folgt:
gunzip < myfile.gz > myfile
Ich denke, dies ist der sauberste Weg, da "gunzip" nie weiß, welche Datei er erhält. Alles, was er sieht, ist ein Datenstrom, daher kann die Originaldatei nicht geändert werden.
Walf vor 7 Jahren
0
12
Alex
Wenn es sich tatsächlich um einen Tarball handelt (.tgz- oder .tar.gz-Erweiterung), dann sollten Sie, anstatt wie alle bisherigen Antworten in eine Datei umzuleiten, diese an tar weiterleiten, z.
gunzip -c myfile.tar.gz | tar xvf -
damit Sie den tatsächlichen Inhalt bekommen.
oder machen Sie einfach: tar xzvf myfile.tar.gz
Joakim Elofsson vor 15 Jahren
7
wahr, aber nur wenn Sie GNU-tar haben. Die mit Solaris gelieferte Option unterstützt beispielsweise die z-Option nicht.
Alex vor 15 Jahren
0
5
mob
Verwenden Sie die -cOption, um die Datei in stdout zu dekomprimieren. Die Originaldatei wird nicht berührt.
gunzip -c myfile.gz > myfile
3
Nabi K.A.Z.
gzip -dk myfile.gz
ODER
gunzip -k myfile.gz
Bemerkungen:
-k --keep Keep (don't delete) input files during compression or decompression.
2
Justin Smith
Gnu-tar kann gzip-Dateien lesen: tar -zxsvf myfile.tar.gzoder tar -jxzvf myfile.tar.bz2für umgehängte tar-Dateien.