7-Zipを使用して多くの.ZIPファイルに分割する


12

100 GBのフォルダーがあり、ZIPを分割した場合、1 GBの100個の.ZIPファイルまたは10 GBの10個の.ZIPファイルに分割すると、消費されるディスク容量に違いはありますか?

それぞれ1 GBの100個の.ZIPファイルは、それぞれ10 GBの10個の.ZIPファイルよりも多くのスペースを使用しますか?


そして、あなたはそれを見つけることができないのですか?
Dave、

5
どうして試せないの?
Peter Mortensen

1
スタンドアロンのZIPファイルにはそれぞれオーバーヘッドがあります。ただし、ZIPファイルを細かく分割して、再構成することができます。これらのピースは、それぞれにZIPオーバーヘッドがありません。セクターまたはブロックの境界で分割した場合、無駄なスペースは含まれません。
fixer1234 2018年

回答:


18

確認してみましょう!

100 MBファイル(27個):

7z a -tzip -v100M ./100m/archive ./kali-linux-xfce-2018.2-amd64.iso

$ du ./100m/
2677884 ./100m/

10 MBファイル(262個):

7z a -tzip -v10M ./10m/archive ./kali-linux-xfce-2018.2-amd64.iso

$ du ./10m/
2677908 ./10m

結果:10 MBの分割アーカイブには、さらに24 KBが必要です。つまり、違いがあります。100個の1 GBファイルは、10個の10 GBファイルよりも多くのスペースを使用します。

ただし、その差はごくわずかです。どちらか都合のいい方に行きます。


4
duデフォルトでは、サイズをバイト単位で出力しません(270Mのファイルが2,677,908バイトになった場合を除く)。実際のデータサイズとは異なる可能性のあるファイルのディスク上のサイズを表示します(他のファイルシステムへのアップロードまたは保存に適用される場合があります)
Xen2050

あなたは正しいです、それは実際にはKBで出力しています。この不一致を修正するために回答を編集しました。元のファイルはKali Linux ISOで、約2.6GBです。あなたはディスク上のサイズと実際のデータサイズについて良い点を持っています、私は特にディスク上のサイズについて考えていました。なぜならそれは追加のファイルを持っていることのオーバーヘッドを説明するからです、しかしあなたはそれがあなたが何であるかによって異なるだろうというのは正しいです実際にアーカイブを使ってやり直してください。
レインベルナルド

申し訳ありませんが、実行文字列を再確認していたところ、ほぼ同様の回答でした。
AFH 2018年

Zipファイルの最大サイズは4GBです。
pbies

1
ええ、だから私はわざわざパーセントを計算しませんでした。特にファイルシステムの違いを考慮すると、元のファイルサイズの一定の割合でうまくいくとは思いません。
レインベルナルド

15

すべてのファイルには、ファイルの終わりの後に未使用の論理セクタースペースのファイルシステムオーバーヘッドがありますが、分割サイズが論理セクターサイズの倍数である場合、これは排除されます(以下の例では必ずしもそうではありません)。

追加のディレクトリエントリによって使用される追加のバイトがある可能性がありますが、ディレクトリが追加の論理セクターを占有しない限り、これらのバイト数はわかりません。

分割ファイルの内容は、同じ分割サイズのバイナリスプリッタープログラムによって作成されたファイルと同じです。

Linux上で7 + MBファイルのGUIバージョンを使用してこれらを検証し、7-Zip(File.7z.00?)で1MBサイズの8つの分割ファイルを作成し、次に単一の完全なアーカイブ(Full.7z)を作成しました。

7z -v1000000 a File;                                         # Create split volumes File.7z.00?
7z a Full File;                                              # Create full archive Full.7z
split -b 1000000 -a 3 --numeric-suffixes=1 Full.7z Full.7z.; # Split full archive into Full.7z.00?
for f in {001..008}; do cmp Full.7z.$f File.7z.$f; done;     # Compare splits with 7z volumes

別のOSでテストするには、適切なスプリッタープログラムをダウンロードまたは作成する必要がある場合があります。

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