Questão Como dividir arquivos maiores em partes menores?


Eu tenho um arquivo grande (8GB por exemplo). Como posso dividi-lo em várias partes, digamos, 3 partes iguais e depois disso, como integrá-las mais tarde?


163
2017-07-26 14:42


origem


Esta parece ser uma duplicata de askubuntu.com/questions/12172/… - Jo-Erlend Schinstad
Você tem certeza "Isto parece ser"? Caramba, é a mesma coisa. Exceto aqui está agora com um bônus de "Mais exemplos e alternativas." - Luis Alvarado♦
Pode ser útil se você disser mais sobre por que deseja dividi-lo e se deseja dividi-lo apenas em substrings de bytes ou se está disposto a tê-los envolvidos em qualquer tipo de verificação ou rotulagem de erros. Se isso é para colocá-lo em mídia menor ou para transferências de rede eu olharia para algo como par2. - poolie
cruzada ref: stackoverflow.com/questions/7764755/… - Trevor Boyd Smith
um forro para dividir igualmente por N: (1.) dividido por linhas split --lines $ (($ (wc -l <$ {seu_filename}) / $ {N})) $ {your_filename} (2.) dividido por bytes divididos --bytes $ (($ (wc-c <$ {seu_nome_do_arquivo}) / $ {N})) $ {seu_nome_do_arquivo} - Trevor Boyd Smith


Respostas:


Existem várias maneiras de conseguir isso. Vamos começar com os básicos.

Usando o Dividido e gato comandos:

Vamos dizer que eu tenho uma imagem e é muito grande (10MB). Tudo que faço é:

split --bytes=1M /path/to/image/image.jpg /path/to/image/prefixForNewImagePieces

e depois para montar eu uso cat:

cat prefixFiles* > newimage.jpg

Por exemplo:

Assumindo que estou dentro da pasta onde a imagem está:

split --bytes=1M myimage.jpg new

se a imagem estiver dentro de um diretório chamado images, você também pode fazer isso:

split --bytes=1M images/myimage.jpg new

Se a imagem estiver dentro do diretório / home / cyrex / images, você pode fazer isso:

split --bytes=1M /home/cyrex/images/myimage.jpg new

(Em todos os casos acima ele vai se dividir myimage.jpg em pedaços de 1MB e prefixar o nome das peças com a palavra new. Então eles se parecem newaa, newab, newac, newad...)

Se você está dividindo um Arquivo de texto e quer dividir por linhas você pode fazer isso:

split -l 1000 book.txt new

Que irá dividir o arquivo de texto em arquivos de saída de 1000 linhas cada. Esta é outra maneira de dividir um arquivo e é usado principalmente para arquivos de texto como logs, dumps de sql, arquivos csv, etc.

Então eu mesclei

cat new* > newimage.jpg

Este é um caminho. Você pode até mudar o tamanho das peças divididas. Apenas mude a parte que diz --bytes=1M para --bytes=1K para 1 kilobyte ou 1G para giga, ou outro número como --bytes=4K para peças de 4KB.

Usando Nautilus

Outra forma é a opção compress no gui do Nautilus. Ele oferece uma opção para dividir o arquivo ou arquivos que você deseja compactar em tamanhos menores de megabytes. É simples e fácil.

Ainda outra maneira é usar 7z

Supondo que você tenha uma imagem ISO chamada ubuntu.iso você poderia fazer isso:

7z a -v5m -mx0 ubuntu.7z ubuntu.iso

Isso criará arquivos com 5 MB de tamanho ubuntu.iso. o -v5m é o tamanho do volume para que você possa mudá-lo para 10, 12, 1, 3 e também o m pode ser alterado para k para kilobytes, etc; a -mx0 O switch informa ao 7-Zip para não usar compactação, isto é, apenas para dividir os dados em partes.

Para extrair apenas faça

7z x ubuntu.7z.001

Desta forma, você extrai o primeiro arquivo e 7z começa a extrair os seguintes arquivos em ordem. Você também pode fazer

7z e ubuntu.7z.001

que tem o mesmo efeito aqui.


244
2017-07-26 15:05



Não incluiu rar desde que não é open source ainda (tanto quanto eu sei) e não acrescentou Tar desde que eu estava procurando maneiras fáceis de fazer a divisão. - Luis Alvarado♦
Adicione o gzip também - o 7zip requer uma instalação do pacote iirc - Broam
Para o que eu sei, o Gzip (como tar) não tem uma opção fácil para dividir o arquivo compactado. Em todos os casos eu os vi usando o comando split para "dividir" o arquivo compactado. Portanto, não seria um comando, mas um grupo de comandos para alcançar um propósito único que pode ser feito com um único, como split ou 7z. Para a instalação do 7Zip (que é o p7zip do pacote p7zip-full) ele nunca me pediu para o iirc;). - Luis Alvarado♦
Adicionado divisão de arquivos de texto. Esqueci sobre isso e hoje aconteceu que eu precisava dividir alguns arquivos CSV. Isso é para os lixões que você precisa ter uma quantidade específica de linhas. - Luis Alvarado♦


Usando split -b com o número apropriado, você pode obter três peças.

Número poderia ser:

size=$(wc -c <"file name")
one_third=$((size/3+1))

Para remontar, use o gato

cat "file name"* > "file name"

Páginas de manual ajudarão a preencher os detalhes.


9
2017-07-26 14:58





HJSplit

É um programa freeware popular para dividir e recombinar arquivos. O programa está disponível no Windows, Linux e em várias outras plataformas.

O HJSplit for Linux é um divisor de arquivos freeware para Linux com interface gráfica de usuário completa. O HJSplit suporta tamanhos de arquivo de mais de 100 Gigabytes, Split, Join / Recombine, checksums MD5, file-compare, "run without install" e o programa é totalmente portátil.

O HJSplit for Linux não precisa ser instalado e não depende de nenhuma biblioteca especial. Apenas extraia o arquivo hjsplitlx.tar.gz em um diretório de sua escolha e inicie o programa a partir do gerenciador de arquivos do Linux ou de uma janela do terminal. Você pode precisar ajustar as permissões de arquivo do programa para 'executável'.

enter image description here


4
2017-07-26 14:53



Devo dizer que o arquivo do Windows também funciona no Linux. - Uri Herrera
Existem várias maneiras de dividir / unir um arquivo antes de ter que ir para um programa como este. Eu prefiro usar as opções poderosas que o linux oferece e para dividir / mesclar arquivos, ele tem algumas maneiras bem rápidas e seguras de fazer isso. - Luis Alvarado♦
É seguro, rápido, e é multi-plataforma que inclui o LINUX, não é um aplicativo somente do WINDOWS que apenas acontece para rodar no Linux também ... - Uri Herrera
Eu uso o HJSplit, é ótimo e simples. Não há necessidade de digitar comandos e nomes de parâmetros quando você pode apenas preencher os valores dos parâmetros em caixas de texto. - Matthew Read
E ser um download gratuito torna isso pior porque? e devo dizer que NENHUMA PARTE NO OP PEDE PARA SOFTWARE LIVRE (o que é, é grátis) e o que você está se referindo é chamado OPEN, há uma diferença que você sabe? - Uri Herrera


Gnomo dividido? http://gnome-split.org/

O GNOME Split é uma ferramenta que permite dividir arquivos e mesclá-los de volta. Está escrito em Java e usa uma interface de usuário GTK + (graças ao projeto java-gnome). O objetivo é oferecer uma implementação nativa de projetos semelhantes que possam lidar com vários formatos de arquivo (por exemplo, Xtremsplit).

http://www.omgubuntu.co.uk/2010/08/split-large-files-easily-in-ubuntu-with-gnome-split/


4
2017-07-26 20:47





HOZ - Hacha Open Zource v1.65 - http://hoz.sourceforge.net/

enter image description here

Do desenvolvedor:

OZ é o que você chamaria de 'divisor de arquivos'. Seu formato de arquivo é o   mesmo que o utilizado pelo software 'Hacha', um divisor bem conhecido   Espanha e América Latina. HOZ é um C de código aberto e portátil   implementação de um splitter compatível com 'Hacha'.

HOZ é menor e mais rápido que 'Hacha'.

BTW, eu usei um 'Z' isntead de um 'S' em 'Zource' porque 'hoz' é   'foice' em espanhol, e desde 'hacha' é a palavra espanhola para   'Machado'...

Após a instalação, você pode usar o Hoz GUI, soltando ghoz em um terminal. A operação é tão simples que não precisa de explicação, mas informações adicionais podem ser obtidas no site do desenvolvedor.

Boa sorte!


3
2017-07-26 15:09





Lenhador

Um utilitário gratuito de divisão e mesclagem de arquivos desenvolvido em Java. É um aplicativo de pequeno tamanho que permite ao usuário dividir qualquer tipo de arquivo em tamanhos menores em KB, MB ou GB.

Está disponível para Linux e Windows.

O WoodCutter oferece 3 maneiras de mesclar os arquivos originais. O WoodCutter cria um arquivo de mesclagem que pode ser processado pelo aplicativo WoodCutter para unir todos os arquivos. Caso o receptor de arquivos de divisão não tenha o WoodCutter instalado, o arquivo original também pode ser obtido, pois o WoodCutter também cria um arquivo de lote e um arquivo de script do Shell para mesclar os arquivos de volta. O arquivo de lote será usado na plataforma Windows e o script Shell será usado nas plataformas Linux.

http://java-puzzle.blogspot.com/2009/07/woodcutter.html


0
2017-07-28 14:49



A licença é "freeware". Eu acho que uma ferramenta de Software Livre que está nos repositórios é uma solução melhor. - Broam