O programa split vem com a maioria das distribuições GNU/Linux. Ele separa um arquivo em partes que podem ser juntadas com o cat. Funciona tanto com arquivos binários e textuais.
Eu costumo usá-lo dessa forma:
split -d -b TAMANHO arquivo PREFIXOPREFIXO Quando o arquivo for separado, cada parte vai começar com esse nome.
-d Isso faz cada parte ter um sufixo numérico (em vez de alfabético, que é o padrão).
-b O tamanho máximo que cada parte pode ter. Isso está em bytes, mas pode ser escrito seguido de KB, MB, GB...
Para saber mais, veja a manpage aqui.
Nesse exemplo, eu crio e separo um arquivo:
$ cat >arquivo fdjsafoanfioewfnioweafnio23nfo2i3nf32ofn23 fn32iofn2ç3fn2ñfo2çnfoç23nfoi23noçffanfndsa nfsadfndsfkankdsaf sdfnwefi32nñfonfowfniwN FNEWIfnçiewFNWEIFNioeWDNEQDNWQINDIQNDIQWN12 FNEWJF3NFINIF3N2IFN3FN3NF3RMF32P MF2N3IOFNI32ORNO2NRIO2F3F90J930rj20moedfmwf (Control+D) $ ls arquivo $ split -d -b 30 arquivo parte_ $ ls arquivo parte_00 parte_01 parte_02 parte_03 parte_04 parte_05 parte_06 parte_07 parte_08E aqui junto todo o arquivo novamente. Note o
diff no final pra garantir que são, de fato, o mesmo arquivo.
$ cat parte_* >novo_arquivo $ ls arquivo novo_arquivo parte_00 parte_01 parte_02 parte_03 parte_04 parte_05 parte_06 parte_07 parte_08 $ diff novo_arquivo arquivo $