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
zippara compactar arquivos e diretorios em um .zip - Usar
unzippara 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.
report.zip. Posso abri-lo no Linux?.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.tar que aprendemos antes?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.
zip e tar.| 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.
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.
unzip: command not found...$ sudo apt install zip unzip
zip e unzip juntos?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-rcomo emzip -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%)
deflated 62%?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.
tar tambem tratava diretorios de forma especial.zip, o -r desempenha esse papel. Torne um reflexo: agrupar um diretorio significa adicionar -r.4. Extrair com unzip
Conclusao:
unzip nome.zipextrai no diretorio atual. Use-dpara 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
inflating significa "expandindo", entao esta extraindo.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.ziplista o conteudo sem extrair. Sempre inspecione um zip desconhecido antes de abri-lo.
-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.zippara extrai-los corretamente.
\203t\202@...!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.
-O CP932 resolveu!-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 -ecria 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.
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
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
zip backup.zip myfolder mas quase nao tem nada dentro.-r. Agrupe diretorios com zip -r backup.zip myfolder/. E um deslize muito comum.Erro 2: unzip: command not found
unzip e recebi command not found.sudo apt install unzip. Se voce tambem quiser criar zips, vai precisar do pacote zip tambem.Erro 3: a extracao baguncouo diretorio atual
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
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)