ファイルをgunzipし、.gzファイルを保持するにはどうすればよいですか?


220

gunzipのデフォルトの動作は、解凍後に.gzファイルを削除することです。

ファイルが削除されないようにするにはどうすればよいですか?

この機能が含まれていない場合、これを可能にする代替プログラムはありますか?

Ubuntu 9.04を使用しています


3
次のコマンドを使用します
。gunzip

gunzipには-kオプションがありますか?誰も見えません。
ズニック

1
@ Znik、gzip / gunzipバージョン1.6以降にはオプションがあります-k
アレクサンドルバラキン

回答:


220

あなたが探しています:

gzcat x.txt.gz >x.txt

このgzcatコマンドはgunzip -c、出力ストリームを単にに書き込むのと同じstdoutです。これにより、圧縮ファイルはそのまま残ります。以下も使用できます。

gunzip -c x.txt.gz >x.txt

一部のシステムでは、gzcatは次のzcatように実行されることもあることに注意してください。

zcat x.txt.gz >x.txt

2
答えてくれてありがとう。DOSでpkunzipを使って育ったので、ファイルを保存するオプションがないほど奇妙だと思います。特に、gzipのようなツールが非常に広く使用されているので...ちょっと変です。
セン

4
参考までに、私は実際にはgzcatを持っていません。私のローカルシステムも、私がsshされたシステムもありません。したがって、gunzip -cを使用する必要があります
Sen

26
おそらくシステム上のzcatにすぎません。
user23307

2
ファイルを保持するための追加オプションは確かにいいでしょう。たとえば、b(un)zip2は同様の構文を使用し-k、元のファイルを保持するために単純に追加できます。
シュナーダー

1
また、あなたの.bashrcに=「gunzipを-c」ライン別名gzcatを追加することができます
ジェームズKingsbery

55

-c出力をstdoutに書き込むgunzip のオプションを使用して、選択したファイルに出力することができます。

gunzip -c compressed-file.gz > decompressed-file

マニュアルページの詳細。


ところで、上記のmanページには、入力ファイルを保持することを意味する-kオプションがリストされていることに注意してください。たぶん、これはBSDバージョンでは動作しますが、私のバージョンでは動作しないので、-cソリューションが正しいようです。

31

より簡単な解決策は、gunzipを次のようなフィルターとして使用することです。

gunzip < myfile.gz > myfile

gunzip取得するファイルがわからないため、これが最もクリーンな方法だと思います。表示されるのはデータのストリームだけなので、元のファイルを変更することはできません。
ウォルフ

12

実際にtarball(.tgzまたは.tar.gz拡張子)である場合、これまでのすべての回答のようにファイルにリダイレクトする代わりに、次のようにtarにパイプする必要があります。

gunzip -c myfile.tar.gz | tar xvf -

実際のコンテンツを取得します。


7
または単に行う:tar xzvf myfile.tar.gz
Joakim Elofsson

true。ただし、GNU tarがある場合のみ。たとえば、Solarisに付属しているものは、zオプションをサポートしていません。
アレックス

5

-cオプションを使用して、ファイルを標準出力に解凍します。元のファイルには影響しません。

gunzip -c myfile.gz > myfile

4
gzip -dk myfile.gz

または

gunzip -k myfile.gz

コメント:

   -k --keep    Keep (don't delete) input files during compression or decompression.

2

Gnu tarはgzipファイルを読み取ることができます:tar -zxsvf myfile.tar.gzまたはtar -jxzvf myfile.tar.bz2bzip圧縮されたtarファイル用。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.