Se recriar o arquivo for uma opção, este script Bash deve fazer o truque (é apenas uma maneira possível):
#!/bin/bash if [ $# != 3 ] ; then echo -e "$0 in out max\n" echo -e "\tin: input directory" echo -e "\tout: output directory" echo -e "\tmax: split size threshold in bytes" exit fi IN=$1 OUT=$2 MAX=$3 SEQ=0 TOT=0 find $IN -type f | while read i ; do du -bs "$i" ; done | sort -n | while read SIZE NAME ; do if [ $TOT != 0 ] && [ $((TOT+SIZE)) -gt $MAX ] ; then SEQ=$((SEQ+1)) TOT=0 fi TOT=$((TOT+SIZE)) TAR=$OUT/$(printf '%08d' $SEQ).tar tar rf $TAR "$NAME" done
Classifica (ordem crescente) todos os arquivos por tamanho e começa a criar os arquivos; muda para outro quando o tamanho excede o limite.
NOTA: Verifique se o diretório de saída está vazio.
USE POR SUA PRÓPRIA CONTA E RISCO