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?
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?
Respostas:
Você pode usar split e cat .
Por exemplo, algo como
$ split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo.
(onde está o nome do arquivo de entrada foo
e o último argumento é o prefixo de saída). Isso criará arquivos como foo.000 foo.001
...
O mesmo comando com opções curtas:
$ split -b 100k -d -a 3 foo foo
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:
$ cat foo.* > foo_2
(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:
$ cmp foo foo_2
$ echo $?
(que deve gerar 0)
Como alternativa, você pode usar uma combinação de find / sort / xargs para remontar as peças:
$ find -maxdepth 1 -type f -name 'foo.*' | sort | xargs cat > foo_3
man split cat md5sum
cat foo.{000..NNN}
onde NNN
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 com foo.aaa
, foo.aab
etc.
split
, KB = 1000, K = 1024, MB = 1000 * 1000, M = 1024 * 1024 etc.
... cat > foo_3
ser ... cat >>foo_3
?
rar
e 7zip
são frequentemente usados para facilitar a montagem dessas divisões na plataforma cruzada
Você também pode fazer isso com o Archive Manager, se preferir uma GUI. Procure em 'Salvar-> Outras opções-> Dividir em volumes de'.