15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
04.08.2025

Como Descompactar um Arquivo .tar.gz no Linux: Guia Completo com Dicas Avançadas

Trabalhar com ficheiros comprimidos é uma realidade diária em qualquer ambiente Linux. Entre os formatos mais utilizados está .tar.gz, um formato de duas fases que combina tar para arquivamento e gzip para compressão. Quer esteja a descompactar código-fonte de software, a restaurar cópias de segurança ou a implementar ficheiros de configuração num servidor VPS Hosting, saber como lidar com arquivos .tar.gz de forma eficiente e segura é uma competência fundamental do Linux.

Este guia abrange tudo, desde o comando de extração básico até técnicas avançadas para arquivos grandes, endurecimento de segurança e boas práticas de scripting.

O que é um ficheiro .tar.gz?

Um ficheiro .tar.gz — frequentemente chamado de tarball — é criado em duas etapas:

  1. tar agrupa múltiplos ficheiros e diretórios num único arquivo (.tar)
  2. gzip comprime esse arquivo para reduzir o seu tamanho (.tar.gz ou .tgz)

Casos de Uso Comuns

  • Distribuição de código-fonte de software
  • Empacotamento de ficheiros de configuração e cópias de segurança
  • Arquivamento de ficheiros de registo para armazenamento a longo prazo
  • Transferência de grandes árvores de diretórios entre servidores

Nome de ficheiro de exemplo: project-files.tar.gz

Comando de Extração Básico

O comando padrão para extrair um ficheiro .tar.gz é:

tar -xvzf file.tar.gz

Análise de Sinalizadores

SinalizadorSignificado
-xExtrair ficheiros do arquivo
-vModo verboso — lista cada ficheiro conforme é extraído
-zDescompactar usando gzip
-fEspecifica o nome do ficheiro a operar

Este comando único trata da grande maioria das tarefas de extração do dia a dia.

Extrair para um Diretório Específico

Por padrão, tar extrai ficheiros para o diretório de trabalho atual. Para redirecionar a saída para uma localização específica, use o sinalizador -C:

tar -xvzf file.tar.gz -C /path/to/target-directory

> Nota: O diretório de destino já deve existir. Crie-o primeiro com mkdir -p /path/to/target-directory se necessário.

Esta abordagem é especialmente útil em scripts de implementação automatizada ou ao organizar múltiplos arquivos num servidor de produção.

Pré-visualizar Conteúdo do Arquivo Antes de Extrair

Antes de extrair um arquivo — particularmente um de uma fonte desconhecida — é uma boa prática inspecionar primeiro o seu conteúdo:

tar -tvzf file.tar.gz

O sinalizador -t lista todos os ficheiros e diretórios dentro do arquivo sem extrair nada. Isto ajuda-o a:

  • Compreender a estrutura de diretórios interna
  • Evitar sobrescrever acidentalmente ficheiros existentes
  • Detetar caminhos suspeitos ou inesperados

Extrair Ficheiros ou Diretórios Específicos

Nem sempre precisa de extrair um arquivo inteiro. Para extrair um único ficheiro ou pasta, especifique o seu caminho exatamente como aparece dentro do arquivo:

tar -xvzf file.tar.gz path/to/specific-file.txt

Para encontrar o caminho interno exato, execute primeiro o comando --list:

tar -tvzf file.tar.gz | grep filename

> Importante: Use o caminho relativo mostrado na listagem do arquivo, não um caminho absoluto começando com /.

Considerações de Segurança ao Extrair Arquivos Não Confiáveis

Extrair ficheiros .tar.gz de fontes desconhecidas ou não confiáveis pode representar riscos de segurança graves, incluindo ataques de travessia de caminho onde arquivos maliciosos sobrescrevem ficheiros críticos do sistema. Aplique estas proteções:

Impedir Sobrescrita de Diretórios

tar --no-overwrite-dir -xvzf file.tar.gz

Remover Componentes de Caminho Iniciais

O sinalizador --strip-components remove níveis de diretório iniciais dos caminhos extraídos, o que neutraliza tentativas de injeção de caminho absoluto:

tar --strip-components=1 -xvzf untrusted-archive.tar.gz

Extrair para um Diretório Isolado

Sempre extraia arquivos não confiáveis para um diretório sandbox dedicado e inspecione o conteúdo antes de mover ficheiros para o seu destino final:

mkdir /tmp/sandbox && tar -xvzf untrusted-archive.tar.gz -C /tmp/sandbox

Estas práticas são especialmente críticas em infraestrutura partilhada. Se gerir múltiplos sites ou clientes, considere usar ambientes de Alojamento Web Partilhado com limites de permissão rigorosos.

Lidar com Arquivos Grandes de Forma Eficiente

Para arquivos que abrangem vários gigabytes, a extração padrão pode parecer uma caixa preta. Estas técnicas melhoram a visibilidade e o desempenho.

Monitorizar Progresso com pv

pv (pipe viewer) apresenta uma barra de progresso em tempo real e velocidade de transferência:

pv file.tar.gz | tar xzvf -

Instale pv se ainda não estiver disponível:

# Debian/Ubuntu
sudo apt install pv

# CentOS/RHEL/AlmaLinux
sudo dnf install pv

Desativar Modo Verboso para Extração Mais Rápida

Ao extrair arquivos muito grandes, o sinalizador -v pode abrandar as coisas ao imprimir milhares de nomes de ficheiros no terminal. Remova-o para melhor desempenho:

tar -xzf file.tar.gz

Usar Descompressão Paralela com pigz

Para servidores multi-núcleo, pigz substitui gzip com uma implementação paralela e pode reduzir dramaticamente o tempo de descompressão:

tar -I pigz -xf file.tar.gz

Descompactar em Duas Etapas Separadas

Às vezes precisa de controlo mais fino — por exemplo, ao integrar num pipeline ou ao inspecionar o ficheiro .tar intermédio antes de descompactar. Pode dividir o processo em dois comandos:

# Step 1: Decompress gzip to get a plain .tar archive
gunzip file.tar.gz

# Step 2: Extract the .tar archive
tar -xvf file.tar

Esta abordagem é útil quando:

  • Quer inspecionar o .tar bruto antes da extração
  • O seu pipeline processa etapas .tar e .gz separadamente
  • Precisa passar o ficheiro .tar para outra ferramenta

Criar um Arquivo .tar.gz

Saber como criar arquivos é tão importante quanto extraí-los. A sintaxe espelha a extração mas usa -c (criar) em vez de -x:

tar -czvf archive-name.tar.gz /path/to/directory/

Excluir Ficheiros ou Diretórios Específicos

tar -czvf archive.tar.gz /path/to/directory/ --exclude='*.log' --exclude='node_modules'

Isto é inestimável para criar pacotes de implementação limpos ou cópias de segurança sem bloat desnecessário.

Automatizar Operações .tar.gz em Scripts

Em servidores de produção — quer execute um Servidor Dedicado ou um VPS gerido — automatizar operações de arquivo poupa tempo e reduz erros humanos.

Exemplo: Script de Cópia de Segurança Automatizada

#!/bin/bash

BACKUP_DIR="/var/backups"
SOURCE_DIR="/var/www/html"
DATE=$(date +%Y-%m-%d)
ARCHIVE="$BACKUP_DIR/website-backup-$DATE.tar.gz"

mkdir -p "$BACKUP_DIR"
tar -czf "$ARCHIVE" --exclude='*.tmp' "$SOURCE_DIR"

echo "Backup created: $ARCHIVE"

Agende isto com uma tarefa cron para cópias de segurança diárias totalmente automatizadas:

0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Usar Gestores de Arquivo GUI (Opcional)

Se está a trabalhar num ambiente de desktop Linux, as ferramentas gráficas fornecem uma alternativa de arrastar e soltar:

Ambiente de DesktopGestor de Arquivo
GNOMEFile Roller
KDE PlasmaArk
XfceThunar Archive Plugin

Estas ferramentas suportam .tar.gz nativamente e são adequadas para uso ocasional. No entanto, para administração de servidor, a linha de comando permanece a abordagem mais confiável e scriptável.

Referência Rápida: Comandos tar Essenciais

TarefaComando
Extrair arquivotar -xvzf file.tar.gz
Extrair para diretóriotar -xvzf file.tar.gz -C /target/
Listar conteúdotar -tvzf file.tar.gz
Extrair ficheiro únicotar -xvzf file.tar.gz path/to/file
Criar arquivo
15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar