Como Simplificar a Compressão 7z com Aliases Bash

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-fullCriar 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
FiSe não existir, adicione-o ao final do arquivo após tudo que já está lá.

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 7zEsses 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.

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'
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.

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 ~/.bashrcSeus 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_arquivoAqui “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.

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