There already is a nice tool for that: split
> man 1 split NAME split -- split a file into pieces SYNOPSIS split [-l line_count] [-a suffix_length] [file [prefix]] split -b byte_count[K|k|M|m|G|g] [-a suffix_length] [file [prefix]] split -p pattern [-a suffix_length] [file [prefix]]
split --bytes 50M test.out test.out_
would split the file test.out
into test.out_xaa, test.out_xab, test.out_xac, ...
A much uglier solution would be to use dd
dd if=test.out of=test.out.part1 bs=1M count=50 skip=0
creates a file named test.out.part1 with the first 50M from test.out. You can increase the value for skip to 1 to get the second chunk, to 2 for the third etc etc. Just make sure to also change the filenames or you will end up overwriting the same output file.