Basico de zip e unzip: Arquivos Multiplataforma no Linux

Basico de zip e unzip: Arquivos Multiplataforma no Linux

O que voce vai aprender

Conclusao: Compacte com zip, extraia com unzip. Adicione inspecao de conteudo e uma correcao para nomes corrompidos, e voce estara pronto para trocar arquivos com usuarios do Windows.

  • Usar zip para compactar arquivos e diretorios em um .zip
  • Usar unzip para extrair um .zip (incluindo os criados no Windows)
  • Inspecionar o conteudo do arquivo antes de extrair, com seguranca
  • Corrigir nomes de arquivos corrompidos em ZIPs vindos do Windows

Para quem e este artigo: leitores familiarizados com comandos basicos de arquivo que precisam trocar arquivos com o Windows.

Introducao: Um arquivo zip de um usuario Windows

Conclusao: O Windows usa ZIP por padrao. Com zip / unzip no Linux, ambos os lados podem enviar arquivos compactados um para o outro.

Lina: Linny-senpai, um usuario do Windows me enviou um arquivo chamado report.zip. Posso abri-lo no Linux?
Veterano Linny: Com certeza. Esse .zip e exatamente o que o Windows cria quando voce clica com o botao direito e escolhe "compactar." No Linux voce abre com unzip e cria um com zip.
Lina: Espera, isso nao e diferente do tar que aprendemos antes?
Veterano Linny: Otima pergunta. tar (.tar.gz) e o que o pessoal do Linux usa entre si. A vantagem do .zip e que o Windows abre nativamente. Entao lembre-se: "falando com Windows? use zip."

1. O que sao zip / unzip, e como diferem do tar?

Conclusao: O zip agrupa e compacta em um unico passo. Como o Windows suporta nativamente, zip e a escolha segura quando o outro lado usa Windows.

Lina: Eu sempre hesito entre zip e tar.
Veterano Linny: Pense assim, de forma simples.
Formato Melhor para Observacao
.zip Troca com Windows O Windows abre nativamente
.tar.gz Linux / Mac entre si Preserva permissoes com precisao

Na duvida: use zip para Windows, e tar.gz para Linux / Mac. Essa unica regra e suficiente para comecar.

Lina: Entao eu escolho com base no sistema operacional da outra pessoa.
Veterano Linny: Exatamente. Mais um detalhe: o zip faz "agrupar" e "compactar" em um unico comando, enquanto o tar apenas agrupa e se combina com o gzip para compactar. Mas nao se preocupe com isso no inicio.

2. Instalar zip / unzip

Conclusao: O Ubuntu pode nao vir com zip / unzip por padrao. Instale-os uma vez com sudo apt install zip unzip.

Lina: Tentei usar e recebi unzip: command not found...
Veterano Linny: Classico. O Ubuntu as vezes nao inclui de fabrica. Instale uma vez e pronto.
$ sudo apt install zip unzip
Lina: Eu instalo zip e unzip juntos?
Veterano Linny: Sim. zip (o criador) e unzip (o extrator) sao pacotes separados, entao instalar ambos te deixa coberto. Para verificar se estao instalados, use which.
$ which zip unzip
/usr/bin/zip
/usr/bin/unzip

3. Compactar com zip

Conclusao: Para arquivos, zip nome.zip arquivo; para diretorios, adicione -r como em zip -r nome.zip dir.

3-1. Agrupar arquivos

$ zip report.zip data.csv memo.txt
  adding: data.csv (deflated 62%)
  adding: memo.txt (deflated 20%)
Lina: O que significa deflated 62%?
Veterano Linny: Significa "reduziu em 62%." O zip mostra a taxa de compactacao para voce. O primeiro nome, report.zip, e o arquivo sendo criado, e o restante sao os arquivos que vao para dentro.

3-2. Compactar um diretorio inteiro (-r e obrigatorio)

$ zip -r project.zip project/

O ponto-chave: ao compactar um diretorio, -r (recursivo -- incluir tudo dentro) e obrigatorio. Esqueca o -r e voce tera um zip quase vazio sem conteudo.

Lina: O tar tambem tratava diretorios de forma especial.
Veterano Linny: Boa memoria. No zip, o -r desempenha esse papel. Torne um reflexo: agrupar um diretorio significa adicionar -r.

4. Extrair com unzip

Conclusao: unzip nome.zip extrai no diretorio atual. Use -d para definir um destino e evitar que os arquivos se espalhem.

4-1. Extrair no diretorio atual (basico)

$ unzip report.zip
Archive:  report.zip
  inflating: data.csv
  inflating: memo.txt
Lina: inflating significa "expandindo", entao esta extraindo.
Veterano Linny: Certo. Compactacao e deflate (encolher), extracao e inflate (expandir). Sao um par.

4-2. Definir o diretorio destino (-d previne acidentes)

$ unzip report.zip -d ~/work/report

Evite bagunca: sem destino, o unzip despeja os arquivos exatamente onde voce esta. Para arquivos com muitos itens, apontar -d para um diretorio dedicado mantem tudo organizado. Se o diretorio nao existir, o unzip o cria para voce.

5. Inspecionar conteudo antes de extrair

Conclusao: unzip -l nome.zip lista o conteudo sem extrair. Sempre inspecione um zip desconhecido antes de abri-lo.

Lina: Fico um pouco nervosa abrindo um zip que recebi sem olhar antes...
Veterano Linny: Instinto saudavel. Adicione -l (list) e voce pode ver apenas a listagem de arquivos, sem extrair.
$ unzip -l report.zip
Archive:  report.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
     1024  2026-06-05 10:00   data.csv
      256  2026-06-05 10:00   memo.txt
---------                     -------
     1280                     2 files

Por seguranca: para um zip de alguem que voce nao conhece, sempre verifique o conteudo com unzip -l antes de extrair. Observar caminhos estranhos como /etc/... ou arquivos desconhecidos e um habito que previne acidentes.

6. Quando os nomes de arquivos ficam corrompidos

Conclusao: Se nomes com caracteres especiais de um zip do Windows ficarem corrompidos, no Ubuntu use unzip -O CP932 nome.zip para extrai-los corretamente.

Lina: Abri um zip de um usuario do Windows e os nomes dos arquivos viraram texto ilegivel como \203t\202@...!
Veterano Linny: Esse e o problema numero um na interoperabilidade com o Windows. O Windows as vezes armazena nomes de arquivos com caracteres especiais em uma codificacao legada como CP932 (uma variante do Shift-JIS), que conflita com o UTF-8 do Linux e aparece corrompido.

O unzip no Ubuntu e Debian tem uma opcao -O para especificar a codificacao dos nomes de arquivos.

$ unzip -O CP932 windows.zip

Por que isso funciona: -O CP932 diz ao unzip "os nomes de arquivos neste zip estao escritos em CP932." O unzip entao os converte corretamente para UTF-8, e os nomes sao exibidos corretamente. Tambem funciona para inspecao: unzip -O CP932 -l windows.zip.

Lina: So adicionar -O CP932 resolveu!
Veterano Linny: -O e uma opcao pratica na versao do unzip do Ubuntu / Debian. Alguns sistemas nao a possuem, mas se voce lida com Windows, vale muito a pena conhecer.

7. Trabalhando com zips protegidos por senha

Conclusao: zip -e cria um zip criptografado, e o unzip solicita a senha na extracao. A criptografia classica do zip e fraca -- nao confie demais nela.

7-1. Compactar com senha

$ zip -e secret.zip data.csv
Enter password:
Verify password:
  adding: data.csv (deflated 62%)

7-2. Extrair um zip protegido por senha

$ unzip secret.zip

Voce sera solicitado a digitar a senha; insira-a para extrair.

Nao confie demais: a criptografia tradicional do zip nao e forte. Para arquivos genuinamente sensiveis, nao dependa apenas de uma senha de zip -- considere uma ferramenta de criptografia dedicada ou um canal de transferencia seguro.

Pratica: coloque as maos na massa

Conclusao: Execute o fluxo completo voce mesmo -- compactar, inspecionar e extrair para um destino escolhido -- para fixar o aprendizado.

Veterano Linny: Vamos executar o fluxo de hoje do inicio ao fim: "agrupar, espiar, abrir com seguranca" -- tres passos.

Exercicio 1: compactar um diretorio

Tarefa: crie um diretorio chamado mydata com alguns arquivos dentro e compacte-o em mydata.zip.

Dica: use mkdir, touch e zip -r.

Resposta exemplo:

$ mkdir mydata
$ touch mydata/a.txt mydata/b.txt
$ zip -r mydata.zip mydata/

Exercicio 2: inspecionar e depois extrair

Tarefa: liste o conteudo de mydata.zip e depois extraia-o em um diretorio chamado extract.

Dica: unzip -l para inspecionar, unzip -d para definir o destino.

Resposta exemplo:

$ unzip -l mydata.zip
$ unzip mydata.zip -d extract
$ ls extract/mydata
a.txt  b.txt
Lina: "Agrupar, espiar, abrir" -- feito! Esse fluxo parece seguro.
Veterano Linny: Perfeito. Torne esses tres passos um habito e voce ficara tranquila com qualquer zip que aparecer.

Erros comuns e correcoes

Conclusao: Quatro classicos -- esquecer o -r, command not found, extracao espalhada e nomes corrompidos. Aprenda cada causa com sua correcao.

Erro 1: compactou um diretorio mas esta vazio

Lina: Executei zip backup.zip myfolder mas quase nao tem nada dentro.
Veterano Linny: Esqueceu o -r. Agrupe diretorios com zip -r backup.zip myfolder/. E um deslize muito comum.

Erro 2: unzip: command not found

Lina: Digitei unzip e recebi command not found.
Veterano Linny: O pacote nao esta instalado. Execute sudo apt install unzip. Se voce tambem quiser criar zips, vai precisar do pacote zip tambem.

Erro 3: a extracao baguncouo diretorio atual

Lina: Abri um zip cheio de arquivos e minha pasta atual virou uma bagunca...
Veterano Linny: O unzip extrai no diretorio atual por padrao. Na proxima vez, envie a saida para um diretorio dedicado com unzip xxx.zip -d destino/. Executar unzip -l primeiro para ver quantos arquivos tem dentro tambem ajuda.

Erro 4: nomes de arquivos corrompidos

Lina: Nomes de arquivos de um zip do Windows saem corrompidos.
Veterano Linny: No Ubuntu / Debian, unzip -O CP932 xxx.zip geralmente resolve. A causa e o Windows armazenar os nomes em CP932.

Resumo

Conclusao: Agrupe com zip -r, espie com unzip -l, extraia com seguranca com unzip -d. Nomes corrompidos? -O CP932. Esse padrao cobre a interoperabilidade com Windows.

  • Criar: zip -r archive.zip dir/ (diretorios exigem -r)
  • Inspecionar: unzip -l archive.zip (verifique antes de extrair)
  • Abrir: unzip archive.zip -d destino/ (sem bagunca)
  • Nomes corrompidos: unzip -O CP932 windows.zip (Ubuntu / Debian)

Proximas Leituras