Como dividir um arquivo grande de + 4 GB em arquivos menores de cerca de 500 MB cada.
E como faço para montá- los novamente para obter o arquivo original?
command-line
split
Stefan
fonte
fonte
Respostas:
Você pode usar split e cat .
Por exemplo, algo como
(onde está o nome do arquivo de entrada
foo
e o último argumento é o prefixo de saída). Isso criará arquivos comofoo.000 foo.001
...O mesmo comando com opções curtas:
Você também pode especificar "--line-bytes" se desejar dividir nos limites da linha em vez do número exato de bytes.
Para remontar as peças geradas novamente, você pode usar, por exemplo:
(supondo que o shell classifique os resultados de globbing do shell - e o número de partes não exceda o limite de argumentos dependente do sistema)
Você pode comparar o resultado via:
(que deve gerar 0)
Como alternativa, você pode usar uma combinação de find / sort / xargs para remontar as peças:
fonte
man split cat md5sum
cat foo.{000..NNN}
ondeNNN
está a última peça esperada. Dessa forma, você recebe uma mensagem de erro se uma das peças estiver faltando. Mas observe que-d
obter sufixos numéricos é específico da divisão do GNU; em outras plataformas você tem que se contentar comfoo.aaa
,foo.aab
etc.split
, KB = 1000, K = 1024, MB = 1000 * 1000, M = 1024 * 1024 etc.... cat > foo_3
ser... cat >>foo_3
?rar
e7zip
são frequentemente usados para facilitar a montagem dessas divisões na plataforma cruzadaVocê também pode fazer isso com o Archive Manager, se preferir uma GUI. Procure em 'Salvar-> Outras opções-> Dividir em volumes de'.
fonte