Como Simplificar a Compressão 7z com Aliases Bash

7zip Bash Aliases Featured

Existem muitas maneiras e muitas ferramentas que você pode usar para reduzir o tamanho dos seus arquivos, seja para diminuir o espaço que ocupam ou enviá-los como um pacote para um contato. Dentre essas, o 7-Zip ascendeu ao topo para a maioria dos usuários, graças à sua combinação única de ótimo desempenho e níveis de compressão sem custo.

Todas as formas de compressão neste formato acabam sendo mais complicadas do que a abordagem que veremos aqui. Pelo menos para a maioria dos usuários que usam compressão para empacotar tudo em uma pasta e suas subpastas em “pacotes” comprimidos.

Então, vamos ver como podemos combinar o suporte do Bash para aliases com a versão de linha de comando do 7z para criar pacotes dos nossos arquivos com um comando simples.

Instalar p7zip

Como a ferramenta de compressão mais popular, o 7-Zip provavelmente já está instalado na sua distribuição Linux. Para testá-lo, tente o comando “7z” em um terminal. Se não estiver instalado, você pode instalá-lo em distribuições baseadas em Ubuntu/Debian com o comando:

sudo apt-get install p7zip-full

Criar arquivo de aliases Bash

Os aliases do Bash permitem mapear comandos ou até mesmo sequências de múltiplos comandos em palavras únicas. A maneira mais fácil de adicionar aliases ao Bash é inseri-los no final do arquivo “~/.bashrc”. Para conveniência e organização, é considerado melhor colocá-los em um arquivo separado.

É provável que este arquivo já exista, e a configuração do Bash inclua uma referência a ele. Verifique se existe abrindo “~/.bashrc” no seu processador de texto favorito e procure por:

if[-f ~/.bash_aliases]; then  
. ~/.bash_aliases  
Fi

Se não existir, adicione-o ao final do arquivo após tudo que já está lá.

7zip Bash Aliases Check Bashrc

Tenha as informações do 7-Zip à mão

Você pode executar o 7-Zip em um terminal para visualizar um resumo de suas opções de linha de comando. Para informações mais abrangentes, visite este guia do usuário ou a página de manual do programa com:

man 7z

Esses recursos ajudarão você a configurar seus próprios comandos de compressão. É muito provável que os que veremos aqui atendam às suas necessidades também. Assim, você pode copiar e colar no seu próprio arquivo .bash_aliases.

7zip Bash Aliases Commandline Options

Criar o alias de ultra-compressão

Abra o arquivo “~/.bash_aliases” no seu processador de texto favorito – nós usamos o nano. Digite:

alias 75='7z a -r -t7z -m0=lzma2 -mx=9 -myx=9 -mqs=on -ms=on'

7zip Bash Aliases First Alias

alias 75 diz que queremos criar o comando “75” que usaremos a partir de agora para comprimir todos os arquivos e pastas em um diretório em um pacote 7-Zip. A razão pela qual adotamos esse nome peculiar para nosso comando é porque é fácil de lembrar como uma versão curta de “nível de compressão 7zip 5.”

7z é o comando de compressão em si. O a que o segue significa “queremos adicionar arquivos a um novo pacote comprimido.” -r indica que o p7zip não deve ser “confinado à pasta onde foi executado” mas deve incluir o pacote comprimido final e todas as subpastas nele, com todo o seu conteúdo.

-t7z -m0=lzma2 indica que queremos criar pacotes 7zip que usam principalmente o algoritmo LZMA2 para compressão de arquivos. Isso geralmente resulta na melhor compressão para a maioria dos tipos de arquivos.

-mx=9 -myx=9 correspondem ao nível de compressão e à “quantidade de esforço” que o 7-Zip colocará na análise do conteúdo dos arquivos a serem comprimidos para encontrar a melhor estratégia de compressão. Quanto maiores seus valores, maior a compressão e menor o pacote produzido.

Finalmente, -mqs=on -ms=on define que queremos compressão “sólida”. Isso significa que o p7zip comprimirá arquivos semelhantes como blocos únicos de dados, alcançando resultados ainda melhores. A razão pela qual eles existem como uma opção que você pode desativar é que são úteis, mas também vêm com duas desvantagens. Eles prolongam o tempo de compressão e tornam impossível descomprimir arquivos independentes do pacote final que o compressor produz. Com compressão sólida, você não pode fazer o equivalente a “extrair um único arquivo de um zip,” e você deve descomprimir todo o pacote para acessar seu conteúdo.

Replicar e “reduzir” o alias

Começamos com o comando que alcança a máxima compressão possível para que, em vez de ter que estendê-lo com mais elementos, possamos retroceder, removendo parâmetros e reduzindo os valores definidos.

Comece copiando o comando existente mais cinco vezes, colocando cada comando em sua própria linha. Deixe a primeira linha como está, pois já alcança o nível de compressão mais alto possível. Modifique o restante, em ordem, removendo as opções extras e reduzindo os níveis de compressão como você vê abaixo. Lembre-se de mudar seus aliases para corresponder aos níveis de compressão mais baixos.

7zip Bash Aliases Compression Variants

Você pode sempre copiar o seguinte e colá-lo no seu ~/.bash_aliases em vez disso.

alias 75='7z a -r -t7z -m0=lzma2 -mx=9 -myx=9 -mqs=on -ms=on'  
alias 74='7z a -r -t7z -m0=lzma2 -mx=9'  
alias 73='7z a -r -t7z -m0=lzma2 -mx=7'  
alias 72='7z a -r -t7z -m0=lzma2 -mx=5'  
alias 71='7z a -r -t7z -m0=lzma2 -mx=3'  
alias 70='7z a -r -t7z -m0=lzma2 -mx=1'

Ativar seus aliases

Salve as alterações no arquivo e retorne ao terminal. Para carregar e ativar seus novos aliases, use o comando:

source ~/.bashrc

Seus novos comandos de compressão estão ativos. O P7zip opera por padrão em todos os arquivos no diretório onde é executado se você não definir “o que deseja comprimir” como um parâmetro. Portanto, tudo que você precisa fazer a partir de agora quando quiser comprimir o conteúdo de uma pasta em um pacote 7z é digitar o comando:

75 nome_do_arquivo

Aqui “75” é o alias para o nível de compressão mais alto de antes, e “nome_do_arquivo” é o nome do pacote de arquivo comprimido. Você pode substituir “75” por um dos outros aliases (de 75 a 70) para compressão gradualmente menor, mas mais rápida, e usar qualquer nome que desejar para o arquivo final.

7zip Bash Aliases Using The Aliases

Se você tiver alguma dúvida, nos avise nos comentários abaixo.