A ferramenta TAR (Tape Archive) no Linux é uma poderosa utilidade usada para arquivar, ou seja, combinar vários arquivos ou diretórios em um único arquivo. Este arquivo resultante é conhecido como tarball. Além de arquivar, o TAR permite compactar, listar o conteúdo do arquivo e manipular arquivos dentro do tarball. Neste artigo, vamos explorar essas operações, fornecendo exemplos práticos para cada uma delas.

Seção 1: Criando um Tarball

A criação de um tarball é feita usando a opção -c (criar) seguida pela opção -f (file), e então especificando o nome do tarball e os arquivos ou diretórios que você deseja incluir.

Uso prático

Para criar um tarball chamado “arquivo.tar” com os arquivos “arquivo1.txt” e “arquivo2.txt”, você usaria o seguinte comando:

$ tar -cf arquivo.tar arquivo1.txt arquivo2.txt

Seção 2: Compactando um Tarball

Para compactar um tarball, é preciso usar uma das opções -z (para compactação gzip) ou -j (para compactação bzip2) juntamente com -c e -f.

Uso prático

Para criar um tarball compactado com gzip chamado “arquivo.tar.gz” com os mesmos arquivos, você usaria o seguinte comando:

$ tar -czf arquivo.tar.gz arquivo1.txt arquivo2.txt

Seção 3: Listando o Conteúdo de um Tarball

Para listar o conteúdo de um tarball, você usará a opção -t (listar) seguida por -f e o nome do tarball.

Uso prático

Para listar o conteúdo do tarball “arquivo.tar.gz”, você usaria o seguinte comando:

$ tar -tzf arquivo.tar.gz

Seção 4: Excluindo Arquivos de um Tarball

O tar não suporta diretamente a remoção de arquivos de um tarball existente. Entretanto, você pode fazer isso extraindo o tarball, removendo os arquivos desejados e então criando um novo tarball.

Uso prático

Para remover o “arquivo1.txt” do tarball “arquivo.tar.gz”, você primeiro extrairia o tarball, removeria o arquivo e então recriaria o tarball:

$ tar -xzf arquivo.tar.gz
$ rm arquivo1.txt
$ tar -czf arquivo.tar.gz arquivo2.txt

Seção 5: Excluindo Arquivos após a Compactação

Se você deseja excluir os arquivos originais após a compactação, você pode fazer isso manualmente com o comando rm. Contudo, é preciso ter cuidado para não excluir nenhum arquivo que ainda seja necessário.

Uso prático

Para excluir “arquivo1.txt” e “arquivo2.txt” após a compactação, você usaria o seguinte comando:

$ tar -czf arquivo.tar.gz arquivo1.txt arquivo2.txt
$ rm arquivo1.txt arquivo2.txt

Seção 6: Extraindo um Tarball

Para extrair um tarball, use a opção -x (extrair) seguida por -f e o nome do tarball.

Uso prático

Para extrair o tarball “arquivo.tar.gz”, use o seguinte comando:

$ tar -xzf arquivo.tar.gz

Os arquivos originais, “arquivo1.txt” e “arquivo2.txt”, serão restaurados em seu diretório atual.

Seção 7: Adicionando Arquivos a um Tarball Existente

Para adicionar arquivos a um tarball existente, use a opção -r (append) seguida por -f e o nome do tarball, e então o nome dos arquivos que deseja adicionar.

Uso prático

Para adicionar “arquivo3.txt” ao tarball “arquivo.tar”, use o seguinte comando:

$ tar -rf arquivo.tar arquivo3.txt

Seção 8: Comparando Arquivos com um Tarball

Para verificar se os arquivos em seu sistema correspondem ao conteúdo de um tarball, use a opção -d (diff) seguida por -f e o nome do tarball.

Uso prático

Para comparar o tarball “arquivo.tar” com os arquivos atuais, use o seguinte comando:

$ tar -df arquivo.tar

Isso listarará as diferenças entre os arquivos no tarball e os arquivos no sistema.

Seção 9: Preservando Permissões ao Criar ou Extrair um Tarball

Quando se trabalha com tarballs, pode ser importante preservar as permissões de arquivo e propriedade durante o processo de arquivamento ou extração. Felizmente, o TAR tem opções para isso.

Ao criar um tarball, o TAR preserva as permissões de arquivo e propriedade por padrão. No entanto, ao extrair um tarball, o usuário pode precisar usar a opção --same-owner para preservar o proprietário do arquivo e a opção -p (ou --preserve-permissions) para preservar as permissões do arquivo.

Uso prático

Para extrair um tarball “arquivo.tar.gz” preservando o proprietário e as permissões do arquivo, use o seguinte comando:

$ tar -xpzf arquivo.tar.gz --same-owner

Seção 10: Excluindo Arquivos Após a Compactação com a opção -remove-files

Ao criar um tarball, o TAR tem uma opção útil -remove-files que exclui os arquivos originais após eles serem adicionados ao tarball. Isso pode ser útil quando você está lidando com grandes quantidades de dados que não precisam ser mantidos em sua forma original após a compactação.

Uso prático

Para criar um tarball chamado “arquivo.tar.gz” com os arquivos “arquivo1.txt” e “arquivo2.txt”, e em seguida excluir esses arquivos originais, você usaria o seguinte comando:

$ tar -czf arquivo.tar.gz arquivo1.txt arquivo2.txt --remove-files

Após a execução desse comando, “arquivo1.txt” e “arquivo2.txt” serão compactados no tarball e, em seguida, excluídos do sistema de arquivos.

Conclusão

O TAR no Linux é uma ferramenta extremamente versátil e poderosa, com uma ampla gama de opções que permitem aos usuários adaptar seus comandos às suas necessidades específicas. Seja você um administrador de sistemas fazendo backups, um desenvolvedor compactando código para distribuição ou um usuário regular fazendo um pouco de limpeza de arquivos, o TAR tem você coberto. Com opções como -remove-files para exclusão automática de arquivos após a compactação, até a preservação de permissões e propriedades de arquivos com --same-owner e -p, o TAR é uma parte indispensável de qualquer kit de ferramentas de gerenciamento de arquivos Linux.

Sobre o autor

Pós graduado em Gestão de Projetos em Tecnologia da Informação pela UNIASSELVI.
Esposo e Pai, curto atividades ao ar livre (Bike, SUP, Natação, Caminhar, Brincar no campo)

Atua com Banco de Dados Oracle desde de 2007. Atualmente é DBA Senior na FLUIDATA Serviços em Banco de dados (www.fluidata.com.br)

Principais atividade Banco de dados:

Implementação, migração, gerenciamento e suporte a produtos Oracle (8i, 9i, 10g, 11g, 12c, 18c, 19c RAC), multiplataforma;
Implementação, migração, gerenciamento e suporte a produtos Microsoft SQL Server (2008 - 2019);
Implementação, migração, gerenciamento e suporte a produtos PostgreSQL (9.3 - 14);
Monitoramento de ambientes 24×7;
Backup e Recovery;
Performance e Tuning;
Alta disponibilidade (HA);
EM database/grid/cloud control;
Conversão de databases;
Standby database / Oracle Data Guard;

Certificações:

Oracle Cloud Infrastructure 2019 Certified Architect AssociateOracle Cloud Infrastructure 2019 Certified Architect Associate
Oracle Database 12c Administrator Certified ProfessionalOracle Database 12c Administrator Certified Professional
Exadata Database Machine Models X2-2 and X2-8 Technology Support SpecialistExadata Database Machine Models X2-2 and X2-8 Technology Support Specialist
Oracle Database 11g Support SpecialistOracle Database 11g Support Specialist
OCP 11g - Oracle Certified Professional AdministratorOCP 11g - Oracle Certified Professional Administrator
OPN Certified Specialist 10g - PartnerNetwork Certified SpecialistOPN Certified Specialist 10g - PartnerNetwork Certified Specialist
Oracle Database 10g Real Applications Clusters AdministratorCertified ExpertOracle Database 10g Real Applications Clusters AdministratorCertified Expert
Oracle Database 10g: Managing Oracle on Linux Certified ExpertOracle Database 10g: Managing Oracle on Linux Certified Expert
OCP 10g - Oracle Certified Professional AdministratorOCP 10g - Oracle Certified Professional Administrator

Principais atividades DEVOPS:

PHP
ASP.net
C#
Docker
Golang
C++
Delphi
Python
HTML5
JavaScript

Você também pode gostar: