アーカイブ対象のファイルで重複排除(重複排除)を実行できるアーカイバプログラムを探しています。アーカイブを解凍すると、ソフトウェアは圧縮プロセス中に削除したファイルを戻します。
これまでのところ、私は見つけた:
他のことを知っている人はいますか?
これはおそらく、7-zipへのすばらしい追加でしょう。
アーカイブ対象のファイルで重複排除(重複排除)を実行できるアーカイバプログラムを探しています。アーカイブを解凍すると、ソフトウェアは圧縮プロセス中に削除したファイルを戻します。
これまでのところ、私は見つけた:
他のことを知っている人はいますか?
これはおそらく、7-zipへのすばらしい追加でしょう。
回答:
ほとんどすべての最新のアーカイバーはこれを正確に行いますが、唯一の違いは、すべてのファイルが圧縮アルゴリズムに送られる前に単一のストリームに連結されるため、これを「ソリッド」アーカイブと呼ぶことです。これは、各ファイルを1つずつ圧縮し、各圧縮ファイルをアーカイブに追加する標準のzip圧縮とは異なります。
7-zipはその性質上、重複排除を効果的に実現します。たとえば、7-Zipはファイルを検索し、同様のファイルタイプとファイル名でそれらをソートします。そのため、同じタイプとデータの2つのファイルが、コンプレッサーアルゴリズムに向かうストリームに並んで配置されます。コンプレッサーは、ごく最近見た多くのデータを見ることになり、これら2つのファイルは、ファイルを1つずつ圧縮するのに比べて、圧縮効率が大幅に向上します。
Linuxは、「。tgz」形式(または「.tar.gz」を使用して完全な形式を使用)が普及しているため、tarがすべてのファイルを単一のストリームにマージしているため(ファイルの並べ替えとグループ化)、gzipでの圧縮。これが見落としているのは、7-zipが行っている並べ替えです。これにより、効率がわずかに低下する可能性がありますが、zipのように個別に圧縮されたファイルを大量にまとめて処理するよりもはるかに優れています。
.tar.gz
一度に比較的小さなブロック(900KBなど)のみを互いに完全に独立して圧縮するgzipではないため、2つの大きいが同一のファイル(たとえば、4MBのイメージ)を重複排除することはできませんか?
圧縮プロセスで重複排除を使用しても意味がありません。ほとんどの圧縮アルゴリズムは、「辞書」と呼ばれるものを作成し、最も一般的な、または再利用されたデータの一部を探します。そこから「単語」全体を書き直すのではなく、辞書エントリを参照するだけです。このようにして、ほとんどの圧縮プロセスは、すべてのファイルから冗長データまたは重複データをすでに切り取っています。
たとえば、1 MBのファイルを取得し、毎回異なる名前(合計100 MBのディスクスペース)で100回コピーした場合、7zipまたはzipファイルで圧縮すると、合計1 MBのzipファイルになります。これは、すべてのデータが1つのディクショナリエントリに入れられ、100回参照されたため、スペースをほとんど消費しないためです。
これは何が起こるかについての非常に簡単な説明ですが、ポイントはまだうまく伝えられています。