Tutoriel Linux

Criar um arquivo 7z no Linux quando um ZIP se torna muito limitado

Débutant3 min de lecture

Um ZIP é suficiente para trocar alguns documentos. Assim que uma pasta se torna pesada, é necessário limitar o tamanho do arquivo ou ocultar os nomes que contém, o formato 7z se torna mais interessante. Eu o usaria para preparar um lote para transferir ou arquivar uma cópia de trabalho, não como única backup.

O procedimento consiste em quatro etapas: identificar o comando instalado, criar o arquivo sem apagar as fontes, ler seu conteúdo e, em seguida, testá-lo antes de excluir ou enviar qualquer coisa.

Tux organizando pastas em um arquivo seguro para ilustrar a criação de um arquivo 7z no Linux
Um arquivo 7z deve ser verificado antes da transferência ou eliminação dos arquivos fonte.

Verificar o comando e preparar a pasta

Em versões recentes do Debian ou Ubuntu, o pacote 7zip geralmente fornece 7zz. Instalações mais antigas usam às vezes p7zip-full e o comando 7z. Comece verificando o que está realmente disponível:

command -v 7zz || command -v 7z
7zz i 2>/dev/null || 7z i

Se nenhum comando responder, instale o pacote adequado para a sua distribuição. No Debian ou Ubuntu, comece atualizando o índice e, em seguida, instale 7zip:

sudo apt update
sudo apt install 7zip

Trabalhe a partir do diretório pai da pasta a ser arquivada. Você evitará um arquivo cheio de caminhos absolutos e verá imediatamente o volume em questão. Verifique também o espaço disponível no destino:

du -sh projeto
 df -h .

Criar um arquivo 7z preservando os arquivos fonte

Coloque-se na pasta que contém projeto, então crie o arquivo. O comando a adiciona os arquivos. Ele não apaga a pasta fonte, a menos que você peça explicitamente um comportamento diferente.

7zz a backup-projeto.7z projeto/

Com o comando antigo, simplesmente substitua 7zz por 7z. O nível padrão é adequado na maioria dos casos. Para favorecer a velocidade em um servidor já carregado, adicione -mx=3. O nível -mx=9 consome mais CPU e não reduz sempre o tamanho o suficiente para justificar a espera.

Para dividir o arquivo em volumes de 2 Gio destinados a um suporte ou envio limitado, use -v2g:

7zz a -v2g backup-projeto.7z projeto/

Mantenha todos os arquivos .001, .002 e seguintes no mesmo diretório. O primeiro volume serve para teste e extração.

Criptografar o arquivo sem expor a senha

Evite -pmotdepasse diretamente na linha de comando: o Bash frequentemente o registra no histórico e ele pode aparecer na lista de processos. Passe -p sem valor para que o 7-Zip solicite o segredo de forma interativa. Adicione -mhe=on para criptografar também os nomes dos arquivos.

7zz a -p -mhe=on backup-projeto-privado.7z projeto/

Um arquivo criptografado não substitui um backup. Perder a senha ou a chave de armazenamento torna o conteúdo inutilizável. Para segredos empresariais, mantenha uma política de criptografia e recuperação distinta deste comando pontual.

Listar, testar e então extrair em uma cópia

Antes de uma transferência ou limpeza, verifique primeiro o conteúdo. l lista os arquivos, t verifica a integridade do arquivo. Esses dois comandos evitam descobrir um arquivo incompleto após ter excluído a pasta de origem.

7zz l backup-projeto.7z
7zz t backup-projeto.7z

Em seguida, teste uma extração em um diretório vazio. Mantenha a pasta fonte intacta até esta etapa:

mkdir -p /tmp/teste-7z
7zz x backup-projeto.7z -o/tmp/teste-7z
find /tmp/teste-7z -maxdepth 2 -type f | head

Para uma transferência importante, também calcule um hash do arquivo e compare-o após a cópia:

sha256sum backup-projeto.7z > backup-projeto.7z.sha256
sha256sum -c backup-projeto.7z.sha256

O formato 7z serve para empacotar e comprimir. Para um backup regular com restauração testada, também é necessário um destino independente e uma rotação. Se você precisar apenas criar ou extrair um arquivo Unix padrão, o guia tar no Linux continua sendo mais adequado para fluxos correntes.

sudo apt update && sudo apt upgrade