Linux: Como dividir um arquivo grande em arquivos menores?

10

Eu tenho um arquivo gigante (> 20 GB) em minha máquina de origem e preciso transferi-lo para minha máquina de destino. Para os fins desta pergunta, vamos supor que eu não tenho conectividade de rede entre as duas máquinas.

Preciso dividir esse arquivo em uma série de arquivos menores, gravar os arquivos menores em DVD (s) e remontar tudo na máquina de destino.

As máquinas de origem e de destino são caixas Linux. Existe uma maneira de fazer isso usando tar? Sinto que preciso usar o --multi-volumeparâmetro Quais são as minhas opções?

Eu preciso ser capaz de especificar o tamanho dos arquivos de volume, para garantir que cada um caiba em um único DVD.

Obrigado!

Runcible
fonte

Respostas:

14

Use o comando split.

split -b 22 m newfile.txt new dividiria o arquivo "newfile.txt" em três arquivos separados chamados newaa, newab e newac, cada arquivo com o tamanho de 22 MB.

duffbeer703
fonte
3
Tenha cuidado ao criar o prefixo "novo" que você compartilha com o arquivo original "newfile.txt". Agora, quando você tenta fazer cat new* > newfile.txtisso, vai explodir!
Robert Martin
@RobertMartin Good catch!
duffbeer703
6

Outras respostas foram cobertas splitpara combiná-las em um arquivo mestre que você acabou de usar cat.

koenigdmj
fonte
3

Isso pode ser feito facilmente usando split , que já deve estar disponível na base de sua distribuição, pois faz parte do gnu coreutils .

Jan Jungnickel
fonte
0

dividir -b 4000000000 nome_do_arquivo

Ele criará cada arquivo de 4 GB


fonte