Você pode usar o split
comando com a -b
opção:
split -b 1024m file.tar.gz
Ele pode ser remontado em uma máquina Windows usando a resposta de @ Joshua .
copy /b file1 + file2 + file3 + file4 filetogether
Edit : Como @Charlie afirmou no comentário abaixo, convém definir um prefixo explicitamente, pois ele será usado de x
outra forma, o que pode ser confuso.
split -b 1024m "file.tar.gz" "file.tar.gz.part-"
// Creates files: file.tar.gz.part-aa, file.tar.gz.part-ab, file.tar.gz.part-ac, ...
Edit : Editando a postagem porque a pergunta está fechada e a solução mais eficaz está muito próxima do conteúdo desta resposta:
# create archives
$ tar cz my_large_file_1 my_large_file_2 | split -b 1024MiB - myfiles_split.tgz_
# uncompress
$ cat myfiles_split.tgz_* | tar xz
Esta solução evita a necessidade de usar um arquivo grande intermediário ao (des) compactar. Use a opção tar -C para usar um diretório diferente para os arquivos resultantes. btw se o archive consistir em apenas um arquivo, o tar pode ser evitado e apenas o gzip usado:
# create archives
$ gzip -c my_large_file | split -b 1024MiB - myfile_split.gz_
# uncompress
$ cat myfile_split.gz_* | gunzip -c > my_large_file
Para o Windows, você pode baixar versões portadas dos mesmos comandos ou usar o cygwin.