Sim, isso pode ser feito.
Prova de conceito:
Deixe-me obter um arquivo para testar:
cp /bin/sh mylargefile
ls -l
-rw-r--r-- 1 hennes users 137208 Jul 1 20:05 my_large_file
Vamos dividir em 3 partes, a primeira parte será 50k, a segunda será 50k, a terceira será 37k. Começamos no final com a terceira parte.
dd if=my_large_file of=part3 bs=1k skip=100
33+1 records in
33+1 records out
34808 bytes transferred in 0.000232 secs (150046592 bytes/sec)
~/test$ ls -l
total 180
-rw-r--r-- 1 hennes users 137208 Jul 1 20:05 my_large_file
-rw-r--r-- 1 hennes users 34808 Jul 1 20:09 part3
Ok, podemos copiar parte do arquivo. Agora vamos truncar o arquivo grande original para 100000 bytes
truncate -s 100000 my_large_file
[hennes@dragon] ~/test$ ls -l
total 144
-rw-r--r-- 1 hennes users 100000 Jul 1 20:17 my_large_file
-rw-r--r-- 1 hennes users 34808 Jul 1 20:09 part3
Comprima com seu programa favorito. Por exemplo,
bzip2 -9 part3
[hennes@dragon] ~/test$ ls -l part3.bz2
-rw-r--r-- 1 hennes users 11773 Jul 1 20:09 part3.bz2
Enxagúe e repita:
dd if=my_large_file of=part2 bs=1k skip=50
47+1 records in
47+1 records out
48800 bytes transferred in 0.024526 secs (1989735 bytes/sec)
Novo dd com números diferentes. Novo truccate com números diferentes. ...
Se você fizer isso sem o maior cuidado, você provavelmente vai se atrapalhar!
Os exemplos acima já são uma mistura de KB e KiB. Tome cuidado extra com seus números.
Além disso, faça um backup. O que significa que você já tem o dobro do espaço para que isso não seja necessário. Use somente se você precisar demonstrar alguma coisa (por exemplo, lição de casa ou como prova de conceito durante uma entrevista de emprego) e por sua conta e risco.