Poupe 15% em todos os serviços de alojamento

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código: Skills Começar a trabalhar
Secções
Linux

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 melhores práticas de scripting.

O que é um arquivo .tar.gz?

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

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

Casos de Uso Comuns

  • Distribuição de código-fonte de software
  • Empacotamento de arquivos de configuração e backups
  • Arquivamento de arquivos de log para armazenamento de longo prazo
  • Transferência de grandes árvores de diretórios entre servidores

Exemplo de nome de arquivo: project-files.tar.gz

Comando de Extração Básico

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

tar -xvzf file.tar.gz

Detalhamento das Flags

FlagSignificado
-xExtrai ficheiros do arquivo
-vModo verboso — lista cada ficheiro conforme é extraído
-zDescompacta 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, utilize a flag -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 automatizados 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 seu conteúdo primeiro:

tar -tvzf file.tar.gz

A flag -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 é necessário extrair um arquivo completo. 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: Utilize o caminho relativo mostrado na listagem do arquivo, não um caminho absoluto começado com /.

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

Extrair .tar.gz arquivos de fontes desconhecidas ou não confiáveis pode apresentar sérios riscos de segurança, incluindo ataques de travessia de diretório onde arquivos maliciosos sobrescrevem arquivos críticos do sistema. Aplique estas proteções:

Prevenir Sobrescrita de Diretório

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

Remover Componentes de Caminho Iniciais

A flag --strip-components remove níveis de diretório iniciais de 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 arquivos para 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 compartilhada. Se você gerencia múltiplos sites ou clientes, considere usar ambientes de Hospedagem Web Compartilhada com limites de permissão rigorosos.

Manipulação Eficiente de Arquivos Grandes

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.

Monitorar Progresso com pv

pv (pipe viewer) exibe 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 Verbose para Extração Mais Rápida

Ao extrair arquivos muito grandes, a flag -v pode desacelerar as coisas imprimindo milhares de nomes de ficheiros no terminal. Remova-a para melhor desempenho:

tar -xzf file.tar.gz

Usar Descompressão Paralela com pigz

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

tar -I pigz -xf file.tar.gz

Descomprimir em Duas Etapas Separadas

Às vezes, você precisa de um controle mais fino — por exemplo, ao integrar em um pipeline ou inspecionar o arquivo .tar intermediário antes de desempacotar. Você 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:

  • Você quer inspecionar o .tar bruto antes da extração
  • Seu pipeline processa as etapas .tar e .gz separadamente
  • Você precisa passar o arquivo .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 peso desnecessário.

Automatizar Operações .tar.gz em Scripts

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

Exemplo: Script de Backup Automatizado

#!/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 um trabalho cron para backups diários totalmente automatizados:

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

Usando Gerenciadores de Arquivo GUI (Opcional)

Se você está trabalhando em um ambiente de desktop Linux, ferramentas gráficas fornecem uma alternativa de arrastar e soltar:

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

Essas 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 programá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 arquivo únicotar -xvzf file.tar.gz path/to/file
Criar arquivotar -czvf archive.tar.gz /source/
Monitorar progresso`pv file.tar.gztar xzvf -`
Remover componentes de caminhotar --strip-components=1 -xvzf file.tar.gz
Descompressão paralelatar -I pigz -xf file.tar.gz

Conclusão

Dominar o manuseio de arquivos .tar.gz vai muito além de digitar tar -xvzf. Ao compreender o formato, visualizar o conteúdo antes da extração, aplicar sinalizadores de segurança para arquivos não confiáveis e aproveitar ferramentas como pv e pigz para arquivos grandes, você ganha controle total sobre uma das operações mais essenciais do Linux.

Essas habilidades se traduzem diretamente em tarefas do mundo real: implantação de código-fonte de aplicações, gerenciamento de backups de servidor, empacotamento de arquivos de configuração e automação de manutenção rotineira. Quer você seja um iniciante aprendendo a linha de comando ou um administrador experiente otimizando fluxos de trabalho em um VPS com cPanel ou um servidor dedicado bare-metal, o manuseio confiante de .tar.gz torna suas operações Linux mais rápidas, seguras e confiáveis.

Se você está procurando um ambiente de hospedagem robusto para colocar essas habilidades em prática, explore Hospedagem VPS AlexHost — com acesso root completo, armazenamento SSD e distribuições Linux flexíveis prontas para qualquer carga de trabalho.