Gzip dekomprimieren auf Datei mit anderer Erweiterung?

10

Ist es möglich, gzipeine komprimierte Datei ohne die Erweiterung gz und ohne Verschieben der Datei zu dekomprimieren?

Tyilo
quelle
Umgekehrt
Ciro Santilli 20 病毒 审查 六四 事件 20

Antworten:

9

Sie können die -SOption übergeben, ein anderes Suffix als zu verwenden .gz.

gunzip -S .compressed file.compressed

Wenn die unkomprimierte Datei einen anderen Namen haben soll, führen Sie sie aus

gzip -dc <compressed-file >uncompressed-file
gunzip <compressed-file >uncompressed-file

(Diese Befehle sind äquivalent).

Beim normalen Entpacken werden Name und Datum der Originaldatei wiederhergestellt (als sie komprimiert wurde). das passiert nicht mit -c.

Wenn Sie möchten, dass die komprimierte Datei und die unkomprimierte Datei denselben Namen haben, können Sie dies nicht direkt tun. Sie müssen entweder die komprimierte Datei umbenennen oder die unkomprimierte Datei umbenennen. Insbesondere gzipentfernt und neu erstellt seine Zieldatei, also , wenn Sie die Datei an seinem Platz zu ändern, weil Sie keine Schreibberechtigung in dem Verzeichnis, müssen Sie verwenden -coder Umleitung.

cp somefile /tmp
gunzip </tmp/somefile >|somefile

Beachten Sie, dass dies gunzip <somefile >somefilenicht funktioniert, da der gunzipProzess beim Starten des Lesens eine auf 0 Byte abgeschnittene Datei sehen würde. Wenn Sie die Kürzung aufrufen könnten, gunzipwürde dies auf die eigene Ausgabe zurückgeführt. In beiden Fällen kann dies nicht an Ort und Stelle durchgeführt werden.

Gilles 'SO - hör auf böse zu sein'
quelle
2

Sie können so etwas tun wie:

gzip -d - < gzippedfilewithnoextention > ungzippedfile

Jetzt können Sie das nicht mehr tun und den gleichen Dateinamen dekomprimieren. Sie müssen die unkomprimierte Datei anschließend umbenennen (dh Sie können sie auf diese Weise nicht direkt dekomprimieren).

Matte
quelle
1
oder einfach "gunzip -c gzfile> ungzfile"
Chris Card
Überraschenderweise haben einige Betriebssysteminstallationen gzipaber nicht gunzip...
Mat
1
Es gibt auch zcat:)
Galaxie