Compactando e arquivando: tar e zip
'Arquivar' e 'compactar' parecem sinônimos no dia a dia, mas são duas operações diferentes que o tar costuma fazer juntas.
No uso comum, "compactar um arquivo" vira uma expressão só — mas por baixo dela existem duas operações separadas. Arquivar significa juntar vários arquivos (e pastas) num único arquivo, sem necessariamente reduzir o tamanho de nada. Compactar significa reduzir o tamanho dos dados, aplicando um algoritmo de compressão. O tar, a ferramenta mais tradicional do mundo Unix pra isso, historicamente faz as duas coisas em sequência.
tar -czvf — criando um arquivo compactado
tar -czvf projeto.tar.gz projeto/Cada letra da flag -czvf tem um papel específico:
c → create (criar um novo arquivo tar)
z → compactar usando gzip (é essa letra que dá a extensão .gz)
v → verbose (mostrar cada arquivo processado na tela, como no exemplo acima)
f → o próximo argumento é o NOME do arquivo de saída (aqui, projeto.tar.gz)O resultado, projeto.tar.gz, junta todo o conteúdo da pasta projeto/ num único arquivo e reduz o tamanho total via compressão gzip — as duas operações (arquivar + compactar) aconteceram numa única chamada de comando.
tar -xzvf — extraindo
tar -xzvf projeto.tar.gzSó o c vira x (extract) — o resto das flags é igual, porque o z continua dizendo "isso está compactado com gzip" e o f continua apontando pro nome do arquivo, agora de entrada em vez de saída.
zip e unzip — a alternativa mais comum fora do Unix
O formato .zip é mais popular fora do mundo Unix — é o padrão nativo do Windows, por exemplo — e no terminal os comandos correspondentes são bem mais diretos que o tar, sem combinação de flags cifradas:
zip -r projeto.zip projeto/Assim como cp e rm, o zip também precisa de -r pra entrar recursivamente numa pasta — sem essa flag, ele reclamaria que projeto/ é uma pasta e não um arquivo.
unzip projeto.zipunzip não precisa de flag nenhuma pro caso comum — ele já sabe extrair pastas e arquivos preservando a estrutura original.
Quando usar qual
Em servidores Linux e em scripts de automação, tar.gz é o padrão histórico e mais esperado. .zip aparece mais quando o arquivo vai circular também entre pessoas usando Windows, ou quando alguém precisa abrir o conteúdo clicando duas vezes numa interface gráfica sem instalar nada extra.
Exercício
Você precisa enviar a pasta relatorios/ pra um colega que vai abrir no Windows, sem instalar nenhum programa extra. Depois, ele te devolve um arquivo respostas.tar.gz gerado num servidor Linux. Quais os dois comandos, um pra cada situação?