タグ付けされた質問 「gzip」

データ圧縮プログラム。もともとはGNUユーティリティでしたが、ほとんどのUnixバリアントによって複製されました。


3
元のファイルを保持するようにgzipに指示する方法は?
元のファイルを保持したまま、gzipコマンドラインツールを使用してテキストファイルを圧縮したいと思います。デフォルトでは、次のコマンドを実行します gzip file.txt このファイルを変更し、名前を変更しfile.txt.gzます。この振る舞いの代わりに、私は既存のものに加えてこの新しい圧縮ファイルを持ちたいfile.txtです。今のところ、私はそれを行うために次のコマンドを使用しています gzip -c file.txt > file.txt.gz それは動作しますが、なぜこのような一般的なタスクを実行する簡単な解決策がないのだろうか?たぶん私はそれをするオプションを見逃したのですか?
210 command-line  files  gzip 

4
tarアーカイブ形式がbzip2を置き換えるためにxz圧縮に切り替わるのはなぜですか。gzipはどうですか?
従来の圧縮ではなく、LZMA2に基づく形式をtar使用しxzて圧縮するアーカイブが増えていますbzip2(bz2)。実際、kernel.orgは2013年12月27日に「Good-bye bzip2」という最新の発表を行い、この時点からカーネルソースがtar.gzとtar.xzの両方の形式で、およびWebサイトのメインページでリリースされることを示しました直接提供されるのはですtar.xz。 これがなぜ起こっているのかgzip、この文脈での関連性を説明する特定の理由はありますか?
202 history  gzip  bzip2  xz 



10
UNIXでzlibデータを解凍する方法は?
次のように、Pythonでzlib圧縮データを作成しました。 import zlib s = '...' z = zlib.compress(s) with open('/tmp/data', 'w') as f: f.write(z) (またはシェル内の1つのライナー。echo -n '...' | python2 -c 'import sys,zlib; sys.stdout.write(zlib.compress(sys.stdin.read()))' > /tmp/data) 次に、シェルでデータを圧縮解除します。どちらzcatもuncompress動作しません: $ cat /tmp/data | gzip -d - gzip: stdin: not in gzip format $ zcat /tmp/data gzip: /tmp/data.gz: not in gzip format $ …
106 compression  gzip 

4
既存のtar.gzアーカイブにファイルを追加/更新しますか?
tar.gzアーカイブ内のファイルを追加/更新する方法はありますか?基本的に、にファイルを含むアーカイブがあり、/data/data/com.myapp.backup/./files/settings.txtそのファイルをアーカイブからプルし(既に完了しています)、編集が完了したらアーカイブにプッシュしたいと思います。どうすればこれを達成できますか?.パスに問題があるのですか?
73 tar  gzip 

10
zcatとcatを透過的に結合するツールはありますか?
ログファイルを処理する場合、一部はgzip圧縮されたファイルにlogrotateなりますが、そうでないものもあります。したがって、次のようなことをしようとすると: $ zcat * 次のようなコマンドラインにzcat xyz.log xyz.log.1 xyz.log.2.gz xyz.log.3.gzなります: gzip: xyz.log: not in gzip format どのようにfile機能するかに似たマジックバイトを使用し、出力をパイプ処理できるように結果を使用zcatまたはcat依存するツールはありgrepますか? NB:スクリプトを作成できることは知っていますが、既にツールがあるかどうかを尋ねています。

5
tar抽出はファイル名に依存しますか?
sourceforge.netからwgetでtarballをダウンロードすることがよくあります。 ダウンロードされたファイルには、たとえば SQliteManager-1.2.4.tar.gz?r=http:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F&ts=1305711521&use_mirror=switch しようとすると tar xzf SQliteManager-1.2.4.tar.gz\?r\=http\:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F\&ts\=1305711521\&use_mirror\=switch 次のエラーメッセージが表示されます。 tar (child): Cannot connect to SQliteManager-1.2.4.tar.gz?r=http: resolve failed gzip: stdin: unexpected end of file tar: Child returned status 128 tar: Error is not recoverable: exiting now ファイルの名前をfoo.tar.gz抽出に変更すると、完璧に機能します。 ターゲットファイルを抽出する前に毎回名前を変更することを強制されない方法はありますか?
33 shell  tar  gzip 

2
ファイルのgzipバージョンが異なるmd5チェックサムを生成する理由
を使用して作成した4つのファイルがあります svndump test.svn test2.svn test.svn.gz test2.svn.gz 今これを実行すると md5sum test2.svn test.svn test.svn.gz test2.svn.gz これが出力です 89fc1d097345b0255825286d9b4d64c3 test2.svn 89fc1d097345b0255825286d9b4d64c3 test.svn 8284ebb8b4f860fbb3e03e63168b9c9e test.svn.gz ab9411efcb74a466ea8e6faea5c0af9d test2.svn.gz だから私はなぜgzipファイルを圧縮するのが異なるのか理解できないのですが、圧縮する前にどこかにタイムスタンプを入れているのですか?上の日付フィールドを使用していたのと同様の問題がありmysqldumpました
28 gzip  hashsum 

4
非圧縮サイズの大きなGZIPPEDファイルを処理する最速の方法
ファイルをgzipで圧縮すると、特に非圧縮ファイルのサイズが4 GBを超える場合に、非圧縮ファイルサイズが何であるかを(圧縮解除せずに)すばやく照会する方法があります。 RFC https://tools.ietf.org/html/rfc1952#page-5によると、ファイルの最後の4バイトを照会できますが、非圧縮ファイルが> 4GBの場合、値は単にuncompressed value modulo 2^32 この値はを実行して取得することもできますがgunzip -l foo.gz、uncompressed value modulo 2^32上記のようにフッターを読み込んでいると考えられるため、「uncompressed」列には再び含まれています。 最初に解凍せずに非圧縮ファイルサイズを取得する方法があるかどうか疑問に思っていましたが、これはgzipされたファイルに50GB以上のデータが含まれ、次のような方法を使用して解凍するのに時間がかかる場合に特に便利です gzcat foo.gz | wc -c 編集: 4GBの制限は、OSXに含まれるユーティリティのmanページで公に認められていますgzip(Apple gzip 242) BUGS According to RFC 1952, the recorded file size is stored in a 32-bit integer, therefore, it can not represent files larger than 4GB. This limitation …
24 compression  gzip 

3
ディレクトリ内のすべての.gzファイルをgunzipします
たくさんの.txt.gzファイルがあるディレクトリがあります(名前が特定のパターンに従っていない場合)。 gunzip彼らへの最も簡単な方法は何ですか?私は彼らがから行くように、元の名前を保持したいwhatevz.txt.gzとwhatevz.txt
24 gzip 

5
ハードウェアリソースにあふれないオンザフライストリーム圧縮
200 GBの空きディスク容量、16 GBのRAM(そのうち約1 GBはデスクトップとカーネルが占有)、6 GBのスワップがあります。 240 GBの外付けSSDがあり、70 GBが使用され1が残り、残りはディスクにバックアップする必要があります。 通常、dd if=/dev/sdb of=Desktop/disk.img最初にディスクを使用してから圧縮しますが、圧縮ステップにより空き領域が押しつぶされる場合でも、イメージを最初に作成することはオプションではありません。最終アーカイブはディスクに簡単に収まります。 ddデフォルトでSTDOUTに書き込みgzip、STDINから読み取ることができるため、理論的にはを書き込むことができますがdd if=/dev/sdb | gzip -9 -、gzipバイトddを生成するよりもバイトの読み取りにかなり時間がかかります。 からman pipe: パイプの書き込み側に書き込まれたデータは、パイプの読み取り側から読み取られるまでカーネルによってバッファリングされます。 を|実際のパイプのように視覚化します。1つのアプリケーションがデータを押し込み、もう1つのアプリケーションがパイプのキューからデータをできるだけ早く取り出します。 左側のプログラムがパイプの反対側が処理を期待できるよりも多くのデータをより速く書き込むとどうなりますか?それは極端なメモリまたはスワップの使用を引き起こしますか、またはカーネルはディスク上にFIFOを作成しようとし、それによりディスクをいっぱいにしますか?それともSIGPIPE Broken pipe、バッファが大きすぎると失敗しますか? 基本的に、これは2つの質問に要約されます。 一度に読み取られるよりも多くのデータをパイプに押し込むことの意味と結果は何ですか? 圧縮されていないデータストリーム全体をディスクに配置せずに、データストリームをディスクに圧縮する信頼できる方法は何ですか? 注1:最初の70個の使用済みGBを正確にコピーすることはできません。断片化など、コンテンツ全体を完全に維持する必要があるため、動作中のシステムまたはファイルシステムを取得します。
23 pipe  dd  compression  gzip 

4
ファイルをインプレースで圧縮するにはどうすればよいですか?
ハードディスクの使用率が90%のマシンがあります。500個以上のログファイルを小さな新しいファイルに圧縮したい。ただし、ハードディスクは小さすぎて、元のファイルと圧縮ファイルの両方を保持できません。 したがって、必要なのは、すべてのログファイルを1つずつ新しいファイルに圧縮し、圧縮された元の各ファイルを削除することです。 Linuxでそれを行うにはどうすればよいですか?

1
gzipを使用して、既存の.gzファイルを除くディレクトリ内のファイルを圧縮します
gzipを使用して圧縮するジョブを設定したいログのディレクトリがあります。問題は、すでに圧縮したログを再圧縮したくないということです。 を使用してみましたls | grep -v gz | gzipが、うまくいかないようです。 これを行う方法はありますか?基本的に、.gzで終わらないディレクトリ内のすべてのファイルをgzipで圧縮します。
19 gzip 

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