Básico de zip e unzip: Arquivos Multiplataforma no Linux

Básico de zip e unzip: Arquivos Multiplataforma no Linux

O que você vai conseguir fazer

  • Compactar arquivos e diretórios com `zip -r`
  • Inspecionar o conteúdo com `unzip -l` antes de extrair
  • Escolher o destino da extração e lidar com a pergunta de sobrescrita

Pré-requisitos (leia estes primeiro)

O que você vai aprender

Conclusão: Compacte com zip, extraia com unzip. Adicione inspeção de conteúdo e uma correção para nomes corrompidos, e você estará pronto para trocar arquivos com usuários do Windows.

  • Usar zip para compactar arquivos e diretórios em um .zip
  • Usar unzip para extrair um .zip (inclusive os criados no Windows)
  • Inspecionar o conteúdo antes de extrair, com segurança
  • Saber onde os arquivos caem e quando são sobrescritos

Para quem é: leitores à vontade com comandos básicos de arquivo que precisam trocar arquivos com o Windows.

As palavras usadas aqui (organizadas antes)

  • Compactar: deixar um arquivo menor.
  • Extrair / descompactar: voltar ao conteúdo original. As duas palavras querem dizer quase a mesma coisa; este artigo usa "extrair".
  • Arquivo compactado: vários arquivos reunidos em um só, ou o formato que faz isso. O .zip é um tipo desses.
  • DiretórioUm local que organiza arquivos. É a mesma ideia da "pasta" do Windows ou macOS. atual: onde você está agora. Confira com pwd. É o destino padrão da extração.
  • ~ (til): forma curta para o seu diretório home, o espaço que pertence a você. Equivale a /home/usuario.

Introdução: Um arquivo zip de um usuário Windows

Conclusão: O Windows usa ZIP por padrão. Com zip / unzip no Linux, os dois lados podem trocar arquivos compactados.

Lina: Linny-senpai, um usuário do Windows me mandou um arquivo chamado report.zip. Consigo abrir no Linux?
Veterano Linny: Claro. Esse .zip é exatamente o que o Windows cria quando você clica com o botão direito e escolhe "compactar". No Linux você abre com unzip e cria com zip.
Lina: Isso é diferente do tar que aprendemos antes?
Veterano Linny: Boa pergunta. O tar (.tar.gz) é o que o pessoal de Linux usa entre si. A força do .zip é que o Windows abre nativamente. Então lembre: "vai falar com Windows? use zip".

1. O que são zip / unzip e como diferem do tar?

Conclusão: O zip agrupa e compacta em um passo só. Como o Windows suporta nativamente, zip é a escolha segura quando o outro lado usa Windows.

Lina: Eu sempre fico em dúvida entre zip e tar.
Veterano Linny: Pense mais ou menos assim.
Formato Melhor para Observação
.zip Trocar com o Windows O Windows abre nativamente
.tar.gz Entre Linux / MacUm modelo de controle de acesso aplicado por regras fixas em todo o sistema (Mandatory Access Control). Preserva permissões com precisão

Na dúvida: use zip para Windows e tar.gz para Linux / Mac. Essa regra única já basta para começar.

Lina: Então escolho pelo sistema da outra pessoa.
Veterano Linny: Exato. Mais um detalhe: o zip faz "agrupar" e "compactar" em um comando só, enquanto o tar apenas agrupa e se junta ao gzip para compactar. Mas não se preocupe com isso no começo.

2. Instalar zip / unzip

Conclusão: O Ubuntu pode não trazer zip / unzip por padrão. Instale uma vez com sudo apt install zip unzip.

Lina: Tentei usar e apareceu unzip: command not found.
Veterano Linny: Clássico. Às vezes o Ubuntu não inclui de fábrica. Instale uma vez e pronto.
$ sudo apt install zip unzip
Lina: Instalo zip e unzip juntos?
Veterano Linny: Sim. zip (quem cria) e unzip (quem abre) são pacotes separados, então instalar os dois cobre tudo. Para conferir se estão instalados, use which.
$ which zip unzip
/usr/bin/zip
/usr/bin/unzip

Duas linhas significam que os dois estão instalados. Uma linha só significa que o outro ainda não está.

3. Compactar com zip

Conclusão: Para arquivos, zip nome.zip arquivo; para diretórios, adicione -r como em zip -r nome.zip dir.

Veterano Linny: Daqui em diante vamos criar e sobrescrever arquivos. Primeiro prepare um diretório de prática e alguns arquivos de prática.
# Crie um diretorio de pratica e entre nele
$ mkdir -p ~/zip-practice
$ cd ~/zip-practice

# Crie arquivos de pratica
$ echo "id,name" > data.csv
$ echo "memo" > memo.txt

Todos os exemplos deste artigo rodam dentro de ~/zip-practice. Assim nada do que você já tinha entra na jogada.

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 "encolheu 62%". O zip informa a taxa de compressão. O primeiro nome, report.zip, é o arquivo que será criado, e os demais são os arquivos que entram nele.

Onde ele cai e o que acontece com um zip existente

  • O report.zip é criado no diretório em que você está agora. Confira com pwd
  • Se já existir um zip com esse nome, o zip adiciona e atualiza dentro dele. Ele não recomeça do zero
  • Para trocar o conteúdo, apague o zip antigo antes ou escolha outro nome

3-2. Compactar um diretório inteiro (-r é obrigatório)

$ zip -r project.zip project/

A pegadinha principal: ao compactar um diretório, -r (recursivo — inclui tudo que está dentro) é obrigatório. Sem -r, você recebe um zip quase vazio, sem conteúdo.

Lina: Senpai, fiz um backup com zip backup.zip myfolder e depois apaguei a pasta original. Quando abri o zip, não tinha nada dentro.
Veterano Linny: Faltou o -r. Diretórios se agrupam com zip -r backup.zip myfolder/.
Lina: Mas o comando pareceu ter dado certo. Ficou vazio esse tempo todo?
Veterano Linny: Ficou. Por isso, depois de criar um backup, conte o conteúdo com unzip -l antes de apagar qualquer coisa. Com essa checagem, você nunca descobre tarde demais.
Lina: Criar, olhar dentro e só depois apagar. A ordem importa.
Lina: O tar também tratava diretórios de forma especial.
Veterano Linny: Boa memória. No zip, o -r cumpre esse papel. Faça disso um reflexo: agrupar diretório significa adicionar -r.

4. Extrair com unzip

Conclusão: unzip nome.zip extrai no diretório atual. Use -d para definir um destino e não espalhar arquivos.

4-1. Extrair no diretório atual (básico)

$ unzip report.zip
Archive:  report.zip
  inflating: data.csv
  inflating: memo.txt
Lina: inflating significa "inflar", ou seja, está extraindo.
Veterano Linny: Isso. Compactar é deflate (encolher), extrair é inflate (inflar). São um par.

4-2. Definir o diretório de destino (-d evita acidentes)

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

Evite bagunça: sem destino, o unzip despeja os arquivos bem onde você está. Para arquivos com muito conteúdo, apontar -d para um diretório dedicado mantém tudo organizado. Se o diretório não existir, o unzip cria para você. Se o zip contiver um diretório, ele é criado dentro do lugar informado no -d.

4-3. Quando já existe um arquivo com o mesmo nome

A pergunta da sobrescrita, antes de tudo

Quando o unzip encontra um arquivo com o mesmo nome, ele para e pergunta.

replace data.csv? [y]es, [n]o, [A]ll, [N]one, [r]ename:
  • y sobrescreve este; A sobrescreve tudo
  • n mantém este; N mantém tudo (não sobrescreve nada)
  • r extrai com outro nome
  • O conteúdo sobrescrito não volta. Nada vai para a lixeira
  • Na dúvida, responda N e extraia de novo em outro diretório com -d
  • O zip e o unzip não rodam no terminalUm programa interativo que interpreta os comandos digitados e os executa. virtual deste site. Execute-os no terminal da sua máquina
  • Pratique somente dentro do ~/zip-practice criado na seção 3. Nunca pratique onde estão os seus arquivos importantes

Para pular a pergunta, escolha uma destas duas formas. Aprenda primeiro a mais segura.

# Lado seguro: nunca sobrescrever; manter os arquivos existentes
$ unzip -n report.zip

# Lado arriscado: sobrescrever tudo sem perguntar
$ unzip -o report.zip

O -o não pergunta nada. Usar -o sem olhar o conteúdo antes faz arquivos de mesmo nome sumirem em silêncio. Confira sempre com unzip -l antes de usar -o. Na dúvida, use -n ou -d.

5. Inspecionar o conteúdo antes de extrair

Conclusão: unzip -l nome.zip lista o conteúdo sem extrair. Sempre inspecione um zip desconhecido antes de abrir.

Lina: Fico um pouco nervosa de abrir um zip que recebi sem olhar antes.
Veterano Linny: Instinto saudável. Adicione -l (list) e você vê só a lista 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

Length é o tamanho do arquivo em bytes, e Name é o nome guardado dentro dele.

Por segurança: para um zip de alguém que você não conhece, sempre confira o conteúdo com unzip -l antes de extrair. Ficar de olho em caminhos estranhos como /etc/... ou arquivos desconhecidos é um hábito que evita acidentes.

6. Quando os nomes de arquivo saem corrompidos

Conclusão: Se nomes não ASCII de um zip do Windows aparecem corrompidos, no Ubuntu use unzip -O CP932 nome.zip para extrair corretamente.

Lina: Abri um zip de um usuário Windows e os nomes viraram coisas como \203t\202@...!
Veterano Linny: Esse é o problema número um na troca com Windows. O Windows às vezes guarda nomes não ASCII em uma codificação antiga como CP932 (uma variante do Shift-JIS), que conflita com o UTF-8 do Linux e aparece corrompida.

O unzip do Ubuntu e do Debian tem a opção -O para indicar a codificação dos nomes.

$ unzip -O CP932 windows.zip

Por que isso resolve: -O CP932 diz ao unzip que "os nomes deste zip estão escritos em CP932". O unzip então converte corretamente para UTF-8 e os nomes aparecem certos. Funciona também para inspecionar: unzip -O CP932 -l windows.zip.

Lina: Só de adicionar -O CP932 resolveu!
Veterano Linny: O -O é uma opção prática da versão do unzip no Ubuntu / Debian. Alguns sistemas não têm, mas se você lida com Windows, vale muito conhecer.

7. Trabalhando com zips protegidos por senha

Conclusão: zip -e cria um zip criptografado, e o unzip pede a senha na extração. A criptografia clássica do zip é fraca — não confie demais.

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

A senha será pedida; digite para extrair.

Não confie demais: a criptografia tradicional do zip não é forte. Para arquivos realmente sensíveis, não dependa só da senha do zip — considere uma ferramenta de criptografia dedicada ou um canal de transferência seguro. Note também que esquecer a senha tranca o conteúdo para sempre, então guarde uma cópia em lugar seguro.

Prática: coloque a mão na massa

Conclusão: Percorra o fluxo completo: compactar, inspecionar e extrair para um destino escolhido.

Veterano Linny: Vamos rodar o fluxo de hoje de ponta a ponta: "agrupar, espiar dentro, abrir com segurança" — três passos.

Trabalhe dentro do ~/zip-practice criado na seção 3. Confirme onde você está com pwd antes de começar.

$ pwd
/home/user/zip-practice

Exercício 1: compactar um diretório

Tarefa: crie um diretório chamado mydata com alguns arquivos dentro e compacte em mydata.zip.

Ver Dica 1 (Direção)

Agrupar um diretório exige uma instrução que diga "inclua tudo que está dentro". Sem ela, o zip sai quase vazio.

Ver Dica 2 (Nome do comando)

Prepare com mkdir e touch, depois agrupe com zip -r.

Ver Resposta
$ mkdir mydata
$ touch mydata/a.txt mydata/b.txt
$ zip -r mydata.zip mydata/
  adding: mydata/ (stored 0%)
  adding: mydata/a.txt (stored 0%)
  adding: mydata/b.txt (stored 0%)

Dois arquivos nas linhas adding: indicam sucesso. A ordem pode variar conforme o sistema.

Exercício 2: inspecionar e depois extrair

Tarefa: liste o conteúdo de mydata.zip e extraia em um diretório chamado extract.

Ver Dica 1 (Direção)

Primeiro olhe dentro sem abrir. Depois mande os arquivos para outro lugar, e não para onde você está.

Ver Dica 2 (Nome do comando)

Inspecione com unzip -l e defina o destino com unzip -d.

Ver Resposta
$ unzip -l mydata.zip
$ unzip mydata.zip -d extract
$ ls extract/mydata
a.txt  b.txt

O extract é criado automaticamente se não existir. Os arquivos caem em extract/mydata/, porque — como mostrou o adding: mydata/a.txt do Exercício 1 — o zip carrega o nome de diretório mydata/ dentro dele. O -d decide onde desempacotar; a estrutura interna do zip é reproduzida como está.

Lina: "Agrupar, espiar, abrir" — consegui! Esse fluxo me deixa tranquila.
Veterano Linny: Perfeito. Torne esses três passos um hábito e você vai encarar qualquer zip com calma.

Erros comuns e correções

Conclusão: Quatro clássicos — esquecer -r, command not found, extração espalhada e nomes corrompidos. Aprenda cada causa com a correção.

Erro 1: compactei um diretório mas está vazio

Lina: Rodei zip backup.zip myfolder mas quase nada entrou.
Veterano Linny: Faltou o -r. Agrupe diretórios com zip -r backup.zip myfolder/. Depois olhe dentro com unzip -l.

Erro 2: unzip: command not found

Lina: Digitei unzip e apareceu command not found.
Veterano Linny: O pacote ainda não está instalado. Rode sudo apt install unzip. Para criar zips, precisa também do pacote zip.

Erro 3: a extração baguncou meu diretório atual

Lina: Abri um zip cheio de arquivos e a pasta em que eu estava virou uma bagunça.
Veterano Linny: O unzip espalha onde você está, a menos que você diga outra coisa. Da próxima vez use unzip xxx.zip -d destino/. Rodar unzip -l antes também ajuda.

Erro 4: nomes de arquivo corrompidos

Lina: Os nomes de um zip do Windows saem corrompidos.
Veterano Linny: No Ubuntu / Debian, unzip -O CP932 xxx.zip costuma resolver. O Windows guardou esses nomes em CP932.

Resumo em Três Linhas

Conclusão: Agrupe com zip -r, espie com unzip -l e extraia com segurança usando unzip -d.

  1. Agrupe diretórios com zip -r e depois conte o conteúdo com unzip -l
  2. A extração se espalha no diretório atual por padrão. Escolha o destino com unzip -d destino/
  3. Em caso de nome repetido o unzip pergunta. Na dúvida responda N e extraia em outro lugar

Padrões para copiar e colar

# Criar (diretorios exigem -r)
zip -r archive.zip dir/

# Inspecionar (confira antes de extrair)
unzip -l archive.zip

# Abrir (sem bagunca)
unzip archive.zip -d destino/

# Nomes corrompidos (Ubuntu / Debian)
unzip -O CP932 windows.zip

Próximas Leituras