Como a maioria das distribuições Linux modernas, o Ubuntu vem com muitas ferramentas por padrão para cada necessidade. Entre eles, você encontrará um Archive Manager com o qual você pode armazenar arquivos em pacotes compactados. No entanto, há um pequeno problema: eles ainda podem ser muito grandes para o que você precisa que eles sejam. Nesses casos, sua melhor aposta é compactar e dividir o arquivo em partes menores.
Embora o Ubuntu venha com as ferramentas para fazer exatamente isso, infelizmente, o Archive Manager não é o melhor para essas tarefas. É então que você terá que recorrer ao terminal. Felizmente, o processo é fácil e você pode compactar e dividir seus arquivos em partes menores com um único comando. Vamos ver como.
Conheça a sua compressão
Antes de começar, temos que explicar um pouco sobre todas as formas de compressão que vão acabar economizando um tempo precioso: ela não se acumula.
Com isso, queremos dizer que, se você tiver vários arquivos altamente compactados, não ganhará muito compactando-os novamente com um tipo diferente de compactação. Suponha que você queira compartilhar arquivos como imagens JPG já altamente compactadas, arquivos de vídeo MP4 ou outros arquivos compactados. Nesse caso, não adianta usar as configurações de compactação mais altas disponíveis. É melhor selecionar “armazená-los” (sem compactação) em um arquivo.
No entanto, para arquivos descompactados ou levemente compactados, como arquivos TXT, bancos de dados grandes ou mídia descompactada, escolher a configuração de compactação mais alta pode produzir arquivos radicalmente menores.
A abordagem clássica do Linux
Digamos que você queira compactar um arquivo como o ISO do Windows 10 usado aqui. Você pode recorrer a ferramentas clássicas como tar
, split
, e bzip
para compactar e dividi-lo em arquivos menores.
1. Ligue seu terminal. A maneira mais rápida é pressionando CTRL + ALT + T. Em seguida, vá para a pasta onde você tem o arquivo grande que deseja armazenar em um arquivo dividido. Para manter as coisas limpas, crie uma subpasta chamada “dividir”, onde armazenaremos o arquivo dividido, com:
mkdir split
Em seguida, insira-o com:
cd split
- Use o seguinte comando para compactar seu arquivo ou pasta em um arquivo dividido:
tar -cvj FILENAME | split -b SIZE_OF_PARTS -d - "BASE NAME OF ARCHIVE"
Para nosso Windows 10 ISO, nosso comando se parecia com:
tar -cvj ~/Data/Windows10.iso | split -b 50m -d - "Windows10_ISO.tar.bz."
- O “~ / Data / Windows10.iso” é o caminho e o nome do arquivo que desejamos compactar.
-
split -b 50m
afirma que queremos dividir nosso arquivo em partes de 50 MB. Altere esse valor para refletir o tamanho de sua preferência. -
Windows10_ISO.tar.bz.
é o nome do arquivo dos arquivos compactados divididos. Observe que há um ponto extra no final. Isso ocorre porque cada pedaço também terá um número em seu final, refletindo sua posição na sequência.
Logo depois, dependendo do tamanho dos arquivos que você está compactando e da velocidade do seu computador, você encontrará as partes do seu arquivo dividido na subpasta dividida.
Se você verificar o tamanho do coletivo, ele será menor do que o total não compactado.
Para recuperar seus arquivos originais, primeiro você terá que remontar todas as partes em um único arquivo com:
cat BASE_NAME_OF_PARTS.* > BASE_NAME_OF_PARTS.bz
Em seguida, extraia seu conteúdo com:
tar -xvj REASSEMBLED_ARCHIVE.bz
Em nosso caso, os dois comandos acima seriam assim:
cat Windows10_ISO.tar.bz.* tar -xvj Windows10_ISO.tar.bz
No entanto, podemos fazer melhor usando uma ferramenta de compressão mais recente, como você verá a seguir.
A solução moderna de alta compressão
7Zip é um arquivador moderno que oferece altas taxas de compressão e também vem com suporte para arquivos divididos. Portanto, é a melhor solução para a tarefa em questão. No entanto, o Ubuntu não vem com ele. Para instalar sua versão do Linux, p7zip, use:
sudo apt install p7zip-full
Compactar seus arquivos em um arquivo dividido com ele é ainda mais fácil do que a solução padrão que vimos antes. Você só precisa indicar o tamanho de cada arquivo dividido, o nome do arquivo base e o que deseja compactar, com:
7z -vSIZE_OF_SPLIT_FILES a ARCHIVE_FILENAME FILE_TO_COMPRESS
Para o nosso exemplo de ISO do Windows 10, para compactá-lo em um arquivo multipart, onde cada parte teria 50 MB de tamanho, o comando se parece com:
7z -v50m a Windows10_iso.7z ~/Data/Windows10.iso
Depois de um tempo, você encontrará os resultados na subpasta de divisão, e eles terão menos tamanho do que se você usasse a abordagem tar-split-bzip que vimos antes.
Para recuperar seus arquivos, extraia apenas o primeiro arquivo da sequência, e 7z irá percorrer o resto automaticamente:
7z e FIRST_PART_OF_COMPRESSED_ARCHIVE
Em nosso exemplo, foi:
7z e Windows10_iso.7z.001
Também é importante notar que, hoje em dia, você tem muito mais opções disponíveis para criar arquivos compactados com ferramentas como pigz ou plzip.
Você acha que os arquivos divididos compactados são práticos? Quais ferramentas de compressão você está usando para lidar com eles? Conte-nos na seção de comentários abaixo.
Relacionado:
- Como compactar e extrair arquivos no Android usando ZArchiver
- Como compactar arquivos usando todos os núcleos de CPU com alcatrão
- Como simplificar a compactação 7z com aliases de Bash