堅牢な圧縮と圧縮ファイルにデータを追加する機能の両方をサポートする圧縮方法はありますか?

堅牢な圧縮と圧縮ファイルにデータを追加する機能の両方をサポートする圧縮方法はありますか?

.tar.xzログファイルを含む大容量圧縮ファイルがあります。圧縮率は非常に良いですが、圧縮に時間がかかり、ログファイルを追加するには解凍し、新しいファイルを追加してから再圧縮する必要があります。ディスク容量が多いです。

堅牢な圧縮の利点を維持しながら、既存のアーカイブに新しいファイルを効率的に追加できるアーカイブ/圧縮方法はありますか? (つまり、ファイルを個別に圧縮しないため圧縮されます.zip)。

ベストアンサー1

ソリッド圧縮ファイルは更新または削除できません。堅牢な圧縮では、後続のデータの圧縮は以前のデータの統計分析に依存するため(通常は圧縮微調整入力のより良い統計分析につながります)、ファイルを削除するには、ファイルを含むアーカイブ全体を解凍して再圧縮します。する必要があります。

ディスク/帯域幅を節約したいが、圧縮または圧縮解除に必要な追加時間と更新または編集の柔軟性の損失を念頭に置かない場合は、一般的に堅牢な圧縮が使用されることを理解することも重要です。既存のアーカイブ更新を含む高速圧縮/圧縮解除機能を提供しますが、ソリッド圧縮とは異なる圧縮速度を提供する他のツールがあります。

あなたが言及する「tar.xz」ソリッド圧縮は、「エミュレートされた」ソリッド圧縮です。

コンピューティングでは、ソリッド圧縮は、圧縮されていないすべてのファイルをリンクして単一のデータブロックとして処理する複数のファイルのデータ圧縮方法を表します。これらのファイルはエンティティファイルと呼ばれます。デフォルトでは、7z[1] および RAR[2] 形式で使用され、.tar.gz および .tar.bz2 などの tar ベースの形式で間接的に使用されます。対照的に、ZIP形式は別々の圧縮ファイルを保存するという点では固定されていません(ただし、ファイルを圧縮されていないzipアーカイブにマージしてから、zipアーカイブを2番目の圧縮zipファイルに圧縮して小さなサイズをシミュレートするすることができます)。アーカイブ)。

まず、現在使用しているtar.xzメソッドがどのように機能するかを説明します。

tar

コンピューティングでは、tarは多くのファイルを単一のアーカイブファイル(しばしばtarballと呼ばれる)として収集するために使用されるコンピュータソフトウェアユーティリティです。

したがって、Tarは基本的にアーカイブです。

xz

xzは、LZMA / LZMA2圧縮アルゴリズムを含むロスレスデータ圧縮プログラムとファイル形式です。圧縮率は高いが、圧縮および解凍時間は遅い。

したがって、2つのファイルを結合するときは、まず複数のファイルをアーカイブし(tar)、次にそれらの単一ファイルを圧縮(xz)します。

今問題は、新しいコンテンツを追加するか、既存のzipファイルを更新する方法です。

tar.xz を使用している場合は、tar.xz を解凍しなければ tar ファイルが残り、次のコマンドを使用してアーカイブをリンクできます。

tar --append --file=archive.tar file_or_dir_to_add

それからもう一度圧縮してみてください。

xz archive.tar

またはZIPを使用できます。

zip -g archive.zip folder/file

ZIPはロスレスデータ圧縮をサポートするアーカイブファイル形式です。 .ZIPファイルには、1つ以上の圧縮ファイルまたはディレクトリを含めることができます。 .ZIPファイル形式はさまざまな圧縮アルゴリズムを可能にしますが、DEFLATEが最も一般的です。

おすすめ記事