回答:
「--split-size」オプションを使用して、「zip」自体の「split archive」機能を使用できます。
「zip」マンページ( " man zip
")から:
(...)
分割アーカイブの用途の1つは、複数のリムーバブル
メディアに大きなアーカイブを保存することです。20個の分割ファイルを持つ分割アーカイブの場合、ファイルには 通常ARCHIVE.z01、ARCHIVE.z02、...、ARCHIVE.z19、ARCHIVE.zip
という名前が付けられます(ARCHIVEはアーカイブの名前に置き換えられます)
。
最後のファイルは.zipファイルであることに注意してください。(...)
-s splitsize
--split-size splitsize分割サイズは、オプションで乗数が後に続く数値です。
現在、数値は整数でなければなりません。
現在、乗数はk(キロバイト)、m(メガバイト)、g(ギガバイト)、
またはt(テラバイト)のいずれかです。64kが最小分割サイズであるため
、乗数のない数値はデフォルトでメガバイトになります。たとえば、 CDに 書き込むのに役立つかもしれない670 MBの分割を持つ
bar
ディレクトリの内容でfooという名前の分割アーカイブを作成するには
、次のコマンドを実行します。zip -s 670m -r foo bar
使用することができます。
したがって、分割されたzipアーカイブを作成するには、次の操作を実行できます(「-r
」は、ディレクトリのサブディレクトリを含める「再帰」スイッチです)。
$ zip -r -s 10m archive.zip directory/
ファイルを解凍するには、「zip
」マンページで「-s 0」スイッチを使用する必要があることが説明されています。
(...)
zip -s 0 split.zip --out unsplit.zip
分割アーカイブを単一ファイルアーカイブに変換します。
(...)
したがって、最初に「-s 0」スイッチを使用してZIPファイルを「分割解除」します。
$ zip -s 0 archive.zip --out unsplit.zip
...そして、分割されていないファイルを解凍します。
$ unzip unsplit.zip
tar -czvf - /path/to/files | split -b 10M - archive.tar.gz
多くのファイルを提供します:
archive.tar.gzaa
archive.tar.gzab
...
その後、次の方法で圧縮解除できます。
cat archive.tar.* | tar -xzvf -
5GBのファイルに対して私がそれをした方法は次のとおりです(OPが尋ねたように10MB対1GBに分割)...
例:5GBファイルを1GBファイルに分割してFAT32 USBにコピーするには(ファイル名 "FIVE_GB_FILE.ISO")
ステップ1:ファイルを圧縮します(圧縮なし、ソースと同じディレクトリ)
zip -0 FIVE_GB_FILE.ZIP FIVE_GB_FILE.ISO
ステップ2:5GBのzipファイルを1GBのzipファイルに分割します
zip -s 1000m SPLIT_5GB_FILES FIVE_GB_FILE.ZIP
出来上がり...次の1GBファイルが必要です(および元のファイル、およびステップ1のzip)
SPLIT_5GB_FILES.zip
SPLIT_5GB_FILES.Z01
SPLIT_5GB_FILES.Z02
SPLIT_5GB_FILES.Z03
SPLIT_5GB_FILES.Z04