.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が最も一般的です。
答え2
はい、圧縮ファイルにデータを追加および削除することができます。次の例をご覧ください。
fuse-zip
より良い方法が見つからない場合は、次の方法に従ってください。フォルダの内容はファイルの内容を使用します.zip
。
たとえば、目的のフォルダを作成します。/home/user/my_folder
sudo mkdir -v /home/user/my_folder
マウント/home/user/my_folder/zipArchive
(ファイルがない場合は作成されます)
fuse-zip foobar.zip /home/user/my_folder/zipArchive
それを書いてください。
必要に応じて削除してください
fusermount -u /home/user/my_folder/zipArchive
詳細については、次を参照してください。
https://linux.die.net/man/1/fuse-zip
ファイルにpe圧縮ファイルシステムを使用できます。
あなたの場合に利用可能なより多くの例は、以下にあります。Debian、Ubuntu、Linux Mintでフォルダを透明に圧縮する方法は?