マイタスクのスナップショットをバックアップするためにクラウドtar -czf work.tgz work
ストレージに保存できる圧縮tarファイルを作成するコマンドを実行します。しかし、ちょうどgzipのサイズ制限が4GBで、私のwork.tgz
ファイルが4GBを超えることがわかりました。
それにもかかわらず、現在のコンピュータ(Mac OS X 10.15.4を実行している場合、gzipバージョンはApple gzip 287.100.2)からgzip tarファイルを作成すると正常に検索できます。したがって、私の特別なケースでは、gunzipは4 GB以上で動作します。しかし、私はMac OS XやLinux、そして将来は他のシステムでもこれらの大容量のgzipファイルを作成して読むことができるようにしたいと思います。
私の質問は:どこでも大容量ファイルを解凍/総圧縮できますか?つまり、4GBより大きいgzipファイルはどのくらい移植性がありますか? Mac OS、Linux、または他のオペレーティングシステムで作成しても問題になりますか?
オンラインで読んだいくつかの内容によると、gzipは大きなファイルを正常にgzip / gunzipしますが、サイズは32ビット整数で保存されるため、圧縮されていないサイズは正しく記録されません。これがすべてのものの限界ですか?
答え1
私はgzipのサイズ制限が4GBであることがわかりました。
より正確には、そのgzip
形式は圧縮されていないファイルを正しく保存できません。サイズ4GiB以上の圧縮されていないサイズの下位32ビットを保存し、gzip -l
それを元のデータのサイズとして誤って表示します。その結果、gzip
1.11までは、gzip -l
元のサイズが4GiBを超える圧縮ファイルに対して正しいサイズが表示されません。
gzip
それ以外にはそれ自体に制限はなく、gzip
4GiBより大きいpedファイルは移植可能です。形式は次のように指定されます。RFC 1952そしてこれに対する支持が広く広がっています。
提供された情報に関する混乱gzip -l
gzip
1.12で修正;gzip -l
保存されたサイズを表示するのではなく、データを解凍して元のデータの実際のサイズを確認します。
どこからでも大容量ファイルを解凍/総圧縮できますか?
tar
大容量ファイルを処理できる場所であれば、どこでも仕様に準拠した実装を使用できますgunzip
。
つまり、4GBより大きいgzipファイルはどのくらい移植性がありますか?
形式gzip
自体は移植可能であり、gzip
含まれるデータサイズに関係なくファイルも移植可能です。
Mac OS、Linux、または他のオペレーティングシステムで作成しても問題になりますか?
いいえ、gzip
すべてのプラットフォームで生成されたファイルは、必要な機能(特にこの質問の文脈で大容量ファイルを保存する機能)を使用して他のプラットフォームで解凍できます。
また、見ることができます圧縮ユーティリティの最大ファイルサイズ制限| Unix/Linux。
答え2
ファイルシステム、ストレージシステム、および暗号化されたコンテナの制限に加えて、ファイル転送に小さなチャンクを使用する方が良いかもしれません。特に、並列アップロードをサポートしていないツールを使用して中断された転送を再開する場合は、これがさらに重要です。
小さなチャンクでこれらの問題をすべて解決できるので、通常はどこでも2GBチャンクを目指しています。 100 GB ファイルの代わりに 1 x 2 GB チャンクを再処理する必要がある場合は、チェックサム エラーを処理することをお勧めします。 Tarはしばしば複数の「テープ」に分割できます。
USBスティック、ストレージアカウント、トランスポートソフトウェアなどのチェーン全体を制御できる場合は、気にする必要はありません(ただし、特に緊急事態でスムーズに回復するためには、より柔軟性があることが利点です)。