Preservando os Arquivos Místicos do Airship com Tar

LinuxBeginner
Pratique Agora

Introdução

O comando tar no Linux é uma ferramenta poderosa utilizada para arquivar arquivos e diretórios. Esta ferramenta permite aos usuários agrupar múltiplos arquivos e diretórios em um único arquivo de arquivo, tornando o armazenamento, transferência e backup de dados mais eficientes. Neste laboratório, você aprenderá como usar o comando tar para criar arquivos, visualizar seus conteúdos e extrair arquivos deles. Essas habilidades são essenciais para administradores de sistemas, desenvolvedores e qualquer usuário Linux que precise gerenciar dados de forma eficiente.

Criando uma Estrutura de Diretórios para Arquivamento

Antes de podermos criar um arquivo, precisamos de alguns arquivos e diretórios para trabalhar. Nesta etapa, você criará uma estrutura de diretórios com vários arquivos que serão posteriormente arquivados.

Primeiro, vamos navegar para o diretório de trabalho padrão:

cd ~/project

Agora, vamos criar um diretório chamado document_library com três subdiretórios: reports, specifications e references:

mkdir -p ~/project/document_library/{reports,specifications,references}

O comando mkdir cria diretórios, e a opção -p nos permite criar diretórios pai se eles não existirem. As chaves {} são usadas para criar múltiplos subdiretórios de uma vez.

Em seguida, vamos criar alguns arquivos de exemplo em cada um desses diretórios:

touch ~/project/document_library/reports/{quarterly,annual,monthly}.txt
touch ~/project/document_library/specifications/{product,service,system}.txt
touch ~/project/document_library/references/{guide,manual,handbook}.txt

O comando touch cria arquivos vazios. Neste caso, estamos criando três arquivos de texto em cada subdiretório.

Vamos verificar se nossa estrutura de diretórios foi criada corretamente usando o comando ls com a opção -R para listar recursivamente o conteúdo dos diretórios:

ls -R ~/project/document_library

Você deve ver uma saída semelhante a esta:

/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

Isso mostra que criamos com sucesso nossa estrutura de diretórios com os arquivos de exemplo. Na próxima etapa, aprenderemos como criar um arquivo desses arquivos usando o comando tar.

Criando um Arquivo com tar

Agora que temos nossa estrutura de diretórios configurada, vamos usar o comando tar para criar um arquivo de todo o diretório document_library. O comando tar é versátil e possui muitas opções, mas vamos nos concentrar nas mais comuns por enquanto.

A sintaxe básica para criar um arquivo com tar é:

tar [options] [archive-name] [files or directories to archive]

Opções comuns incluem:

  • -c: Criar um novo arquivo
  • -z: Comprimir o arquivo usando gzip
  • -v: Modo verbose (mostrar progresso)
  • -f: Especificar o nome do arquivo do arquivo
  • -C: Mudar para o diretório especificado antes de realizar operações

Vamos criar um arquivo compactado do nosso diretório document_library:

tar -czvf ~/project/documents_archive.tar.gz -C ~/project document_library

Neste comando:

  • -c diz ao tar para criar um novo arquivo
  • -z diz ao tar para comprimir o arquivo usando gzip
  • -v habilita o modo verbose, mostrando os arquivos sendo processados
  • -f ~/project/documents_archive.tar.gz especifica o nome do arquivo do arquivo
  • -C ~/project diz ao tar para mudar para o diretório ~/project antes de arquivar
  • document_library é o diretório que queremos arquivar

Você deve ver a saída listando todos os arquivos sendo adicionados ao arquivo. Isso indica que o arquivo está sendo criado com sucesso.

Para verificar se o arquivo foi criado, vamos verificar sua existência e tamanho:

ls -lh ~/project/documents_archive.tar.gz

A saída deve mostrar algo como:

-rw-r--r-- 1 labex labex 237 Sep 22 10:00 /home/labex/project/documents_archive.tar.gz

As opções -lh com ls mostram informações detalhadas, incluindo tamanhos de arquivos legíveis por humanos. O tamanho real do arquivo pode variar, mas deve ser relativamente pequeno, pois nossos arquivos de exemplo estão vazios.

Parabéns! Você criou com sucesso um arquivo compactado de sua estrutura de diretórios. Na próxima etapa, exploraremos como visualizar o conteúdo deste arquivo sem extraí-lo.

Visualizando o Conteúdo de um Arquivo

Antes de extrair um arquivo, é frequentemente útil visualizar seu conteúdo para garantir que ele contenha os arquivos esperados ou para localizar arquivos específicos. O comando tar fornece opções para listar o conteúdo de um arquivo sem extraí-lo.

Para listar o conteúdo do arquivo que criamos, use o seguinte comando:

tar -tvf ~/project/documents_archive.tar.gz

Neste comando:

  • -t diz ao tar para listar o conteúdo do arquivo
  • -v habilita o modo verbose, mostrando informações detalhadas
  • -f ~/project/documents_archive.tar.gz especifica o arquivo do arquivo a ser examinado

Você deve ver uma saída semelhante a esta:

drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/references/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/guide.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/handbook.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/manual.txt
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/reports/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/annual.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/monthly.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/quarterly.txt
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/specifications/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/product.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/service.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/system.txt

Esta saída mostra as permissões, o proprietário, o tamanho, a data de modificação e o caminho de cada arquivo e diretório no arquivo.

Se você deseja pesquisar arquivos específicos no arquivo, pode direcionar a saída para grep. Por exemplo, para encontrar todos os arquivos com "annual" em seus nomes:

tar -tvf ~/project/documents_archive.tar.gz | grep annual

Isso deve exibir:

-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/annual.txt

Visualizar o conteúdo de um arquivo é útil quando você precisa verificar o que está dentro antes de extrair, especialmente ao lidar com arquivos grandes ou quando você está interessado apenas em arquivos específicos. Na próxima etapa, aprenderemos como extrair arquivos do nosso arquivo.

Extraindo Arquivos de um Arquivo

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.

Resumo

Neste laboratório, você aprendeu a usar o comando tar no Linux para gerenciar arquivos de arquivos. Você praticou várias habilidades essenciais:

  1. Criar uma estrutura de diretórios com arquivos para preparar a arquivamento
  2. Criar um arquivo compactado usando o comando tar com as opções -czvf
  3. Visualizar o conteúdo de um arquivo sem extraí-lo usando as opções -tvf
  4. Extrair arquivos de um arquivo para restaurar dados usando as opções -xzvf

Essas habilidades são fundamentais para muitas operações Linux, incluindo procedimentos de backup e restauração, instalação de software e gerenciamento de arquivos. O comando tar é uma ferramenta poderosa no ambiente Linux, e entender como usá-lo efetivamente o ajudará a gerenciar seus dados de forma eficiente.

Lembre-se das opções-chave para o comando tar:

  • -c: Criar um novo arquivo
  • -x: Extrair arquivos de um arquivo
  • -t: Listar o conteúdo de um arquivo
  • -z: Usar compressão gzip
  • -v: Modo verbose (mostrar progresso)
  • -f: Especificar o nome do arquivo do arquivo
  • -C: Mudar para o diretório especificado antes de realizar operações

Agora você pode usar com confiança o comando tar para criar backups, compartilhar arquivos e restaurar dados em seu ambiente Linux.