ti-enxame.com

Divida um arquivo grande em pedaços menores

Como faço para dividir um arquivo grande, + 4GB em arquivos menores, com cerca de 500MB cada.

E como remontar novamente para obter o arquivo original?

66
Stefan

Você pode usar split e cat .

Por exemplo, algo como

$ split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo.

(onde 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
80
maxschlepzig

Você também pode fazer isso com o Archive Manager, se preferir uma GUI. Procure em 'Salvar-> Outras opções-> Dividir em volumes de'.

4
user1498