Agora que sabemos como criar arquivos e visualizar seu conteúdo, vamos aprender como extrair arquivos de um arquivo. Isso é útil quando você precisa restaurar arquivos de um backup ou quando recebe um arquivo de outra pessoa.
Para demonstrar isso, vamos primeiro simular um cenário em que nossa estrutura de diretórios original é perdida. Removeremos o diretório document_library:
rm -rf ~/project/document_library
O comando rm remove arquivos e diretórios, e as opções -rf dizem a ele para operar recursivamente e forçar a remoção sem solicitar confirmação. Tenha cuidado ao usar este comando em cenários do mundo real, pois ele exclui permanentemente os arquivos.
Vamos verificar se o diretório foi removido:
ls -la ~/project
Você não deve ver document_library na listagem, mas ainda deve ver seu arquivo documents_archive.tar.gz.
Agora, vamos extrair o arquivo para restaurar nossos arquivos. A sintaxe básica para extrair com tar é:
tar [options] [archive-name]
Opções comuns de extração incluem:
-x: Extrair arquivos de um arquivo
-z: Descomprimir usando gzip
-v: Modo verbose (mostrar progresso)
-f: Especificar o nome do arquivo do arquivo
-C: Mudar para o diretório especificado antes de extrair
Vamos extrair nosso arquivo:
tar -xzvf ~/project/documents_archive.tar.gz -C ~/project
Neste comando:
-x diz ao tar para extrair arquivos
-z diz ao tar para descomprimir o arquivo gzipped
-v habilita o modo verbose, mostrando os arquivos sendo extraídos
-f ~/project/documents_archive.tar.gz especifica o arquivo do arquivo
-C ~/project diz ao tar para extrair os arquivos para o diretório ~/project
Você deve ver a saída listando todos os arquivos sendo extraídos, semelhante ao que você viu ao criar o arquivo.
Vamos verificar se nossa estrutura de diretórios foi restaurada:
ls -R ~/project/document_library
Você deve ver a mesma estrutura de diretórios e arquivos que criamos originalmente:
/home/labex/project/document_library:
references reports specifications
/home/labex/project/document_library/references:
guide.txt handbook.txt manual.txt
/home/labex/project/document_library/reports:
annual.txt monthly.txt quarterly.txt
/home/labex/project/document_library/specifications:
product.txt service.txt system.txt
Se você deseja extrair apenas arquivos específicos de um arquivo, pode especificar seus caminhos após o nome do arquivo. Por exemplo, para extrair apenas o diretório reports:
mkdir -p ~/project/extracted_reports
tar -xzvf ~/project/documents_archive.tar.gz -C ~/project/extracted_reports document_library/reports
Isso extrairá apenas o diretório reports e seu conteúdo para o diretório extracted_reports.
Parabéns! Você aprendeu com sucesso como extrair arquivos de um arquivo usando o comando tar. Essa habilidade é essencial para restaurar backups, instalar software a partir da fonte e muitas outras operações Linux.