Bash
Linux
Split

バイナリファイルの分割結合

分割 (split)

詳細は

man split

srcを30MBずつに分割

split -b 30M src dst.
dst.aa
dst.ab
...
dst.zz

suffixを数字に指定 (-d)

split -d -b 30M src dst.
dst.01
dst.02
...
dst.99

suffixの桁数を指定 (-a)

split -a 3 -d -b 30M src dst.
dst.001
dst.002
...
dst.999

結合

普通にcatで結合

cat dst.* > dst

例 (分割 & 結合)

$ ls -lh # カレントディレクトリに100MBのsrcというファイルがある
total 100M
-rw-r--r-- 1 usr grp 100M Dec 21 06:25 src

$ split -b 30M src dst. # srcを30MBずつに分割

$ ls -lh
total 100M
-rw-r--r-- 1 usr grp  30M Dec 21 06:29 dst.aa
-rw-r--r-- 1 usr grp  30M Dec 21 06:29 dst.ab
-rw-r--r-- 1 usr grp  30M Dec 21 06:29 dst.ac
-rw-r--r-- 1 usr grp  10M Dec 21 06:29 dst.ad
-rw-r--r-- 1 usr grp 100M Dec 21 06:25 src

$ cat dst.* > dst # 結合

$ ls -lh
total 300M
-rw-r--r-- 1 usr grp 100M Dec 21 06:29 dst
-rw-r--r-- 1 usr grp  30M Dec 21 06:29 dst.aa
-rw-r--r-- 1 usr grp  30M Dec 21 06:29 dst.ab
-rw-r--r-- 1 usr grp  30M Dec 21 06:29 dst.ac
-rw-r--r-- 1 usr grp  10M Dec 21 06:29 dst.ad
-rw-r--r-- 1 usr grp 100M Dec 21 06:25 src

$ md5sum src dst # 正しく分割結合できているか確認
2f282b84e7e608d5852449ed940bfc51  src
2f282b84e7e608d5852449ed940bfc51  dst