logo

Comando Tar em Linux/Unix com exemplos

O comando tar é a abreviação de arquivo de fita no Linux. Este comando é usado para criar Archive e extrair os arquivos compactados. Em Linux , é um dos comandos essenciais que facilitam a funcionalidade de arquivamento. Podemos usar este comando para criar arquivos compactados e descompactados e também modificá-los e mantê-los.

Tar é um utilitário de software de computador para coletar vários arquivos em um único arquivo na computação. Freqüentemente, é conhecido como tarball para fins de backup e distribuição. O título foi adquirido de 'arquivo de fita' porque na verdade foi desenvolvido para especificar dados em dispositivos de E/S sequenciais sem usar nenhum de seus sistemas de arquivos. Os grupos de dados de arquivo criados pelo tar incluem muitos parâmetros do sistema de arquivos, como organização de diretório, permissão de acesso a arquivos, propriedade, carimbos de data/hora e nome. Em favor do pax, o POSIX abandonou o tar, o tar ainda é amplamente utilizado.

Primeiro, foi anunciado na versão 7 do Unix em janeiro de 1979, substituindo o programa tp. Para armazenar os dados, a estrutura do arquivo foi padronizada no POSIX.1-1988 e posteriormente no POSIX.1-2001 e tornou-se um padrão suportado por quase todos os sistemas modernos de arquivamento de arquivos. Os sistemas operacionais do tipo Unix geralmente contêm ferramentas para suportar arquivos tar e utilitários usados ​​para compactá-los, como bzip2 e gzip.
Desde a atualização de 10 de abril de 2018 da Microsoft, o BSD-tar está contido no Microsoft Windows e há duas ou mais ferramentas de terceiros para ler e gravar esses padrões no Windows.

Formatos de arquivo tar

Existem muitos formatos de arquivo tar disponíveis, incluindo os atuais e históricos. Dois formatos tar são escritos em POSIX: pax e ustar.

Cabeçalho

O registro do cabeçalho do arquivo inclui os metadados de um arquivo. No registro do cabeçalho, as informações são codificadas nos padrões ASCII para garantir flexibilidade em arquiteturas distintas usando ordenações de bytes distintas. Portanto, se cada arquivo for um arquivo de texto ASCII em um arquivo e contiver nomes ASCII, o arquivo será um arquivo de texto ASCII (com vários caracteres NUL).

Vários campos são mencionados na tabela a seguir, definidos pelo formato tar real do Unix. A tabela de tipo de arquivo/indicador de link contém algumas extensões modernas. Um campo é preenchido com vários bytes NUL se não for utilizado.

Cabeçalho tar pré-POSIX.1-1988:

jpa na primavera
Campo Tamanho do campo Deslocamento de campo
Nome do arquivo 100 0
Modo de arquivo 8 100
ID de usuário numérico do proprietário 8 108
ID de usuário numérico do grupo 8 116
Tamanho do arquivo em bytes 12 124
Hora da última modificação na forma de hora numérica Unix 12 136
Soma de verificação para o registro do cabeçalho 8 148
Indicador de link 1 156
Nome do arquivo vinculado 100 157

Formato Ustart

No formato Ustar, quase todos os programas tar modernos escrevem e leem arquivos, anunciados pelo padrão POSIX IEEE P1003.1 de 1988. Ele introduziu campos de cabeçalho extras. Os programas tar anteriores evitariam as informações adicionais, mas os novos programas verificarão a presença da string 'Ustar' para decidir se o formato mais recente está em uso.

Campo Tamanho do campo Deslocamento de campo
Muitos campos, como no formato anterior 156 0
Sinalizador de tipo 1 156
Campo semelhante ao formato anterior 100 157
'ustar' Indicador Ustar, depois NUL 6 257
Versão '00' Ustar 2 263
Nome de usuário do proprietário 32 265
Nome do grupo do proprietário 32 297
Número principal do dispositivo 8 329
Número menor do dispositivo 8 337
Prefixo do nome do arquivo 155 3. 4. 5

POSIX.1-2001/pax

A Sun propôs uma técnica para adicionar extensões a um formato tar em 1997. Mais tarde, foi aprovado para o padrão POSIX.1-2001. O formato é chamado de formato pax ou formato tar estendido. Algumas tags são especificadas pelo padrão POSIX, incluindo mtime, atime, linkpath, gname, uname, tamanhos, gid, uid e uma definição de conjunto de caracteres para nomes de grupos/usuários e nomes de caminhos.

Principais implementações do tar

As principais implementações são mencionadas na ordem de origem:

    alcatrão solaris vem como padrão no sistema operacional Solaris, baseado no Unix V7 real. Alcatrão GNU é um padrão em quase todas as distribuições Linux. É baseado em um pdtar de implementação de domínio público que começou em 1987. As edições recentes podem usar vários formatos, como GNU, pax, v7 e ustar. Alcatrão do FreeBSD tornou-se um tar padrão em quase todos os sistemas operacionais baseados em Berkeley Software Distribution, como o Mac OS X. Alcatrão Schily é historicamente importante porque algumas de suas extensões eram famosas. Foi lançado pela primeira vez em abril de 1997. Arquivo tarifário Python suporta dois ou mais formatos tar, como gnu, pax e ustar; ele pode ler, mas não tornar os formatos SunOS tar estendido e V7; pax é um formato padrão para criação de arquivo. Está disponível para usuários desde 2003.

Além disso, a maioria das implementações cpio e pax podem criar e ler dois ou mais tipos de arquivos tar.

Sintaxe do comando tar:

 tar [options] [archive-file] [directory or file to be archived] 

Opções no comando tar

Várias opções no comando tar estão listadas abaixo:

    -c:Esta opção é usada para criar o arquivo.-f:Esta opção é usada para criar um arquivo junto com o nome do arquivo fornecido.-x:Esta opção é usada para extrair arquivos.-em:Ele pode ser usado para adicionar um arquivo ao arquivo existente.-t:É usado para exibir ou listar arquivos dentro do arquivo arquivado.-A:Esta opção é usada para concatenar os arquivos compactados.-em:Pode ser usado para mostrar informações detalhadas.-j:Ele é usado para filtrar arquivos tar com a ajuda de tbzip.-Com:É um arquivo zip e informa o comando tar que cria um arquivo tar com a ajuda do gzip.-r:Esta opção é usada para atualizar e adicionar um diretório ou arquivo em um arquivo .tar existente.-EM:Esta opção é usada para verificar o arquivo compactado.

Introdução ao arquivo compactado

O arquivo morto pode ser definido como um arquivo que contém vários arquivos com metadados. Esses arquivos são usados ​​para coletar mais de um arquivo de dados em um arquivo individual para facilitar o armazenamento e a portabilidade. Também pode ser usado para compactar arquivos para consumir menos espaço de armazenamento.

Exemplos de comando tar

Alguns dos exemplos importantes que são amplamente usados ​​no comando tar são os seguintes:

multithreading em java

1. Criando um arquivo tar descompactado com a opção -cvf

Esta opção torna um arquivo tar conhecido como arquivo.tar . É o arquivo de cada arquivo .txt dentro meudir diretório.

O comando é o seguinte:

 $ tar cvf file.tar *.txt 

Comando tar no Linux

2. Extraindo arquivos através do arquivo com a opção -xvf

Esta opção pode extrair arquivos através de arquivos.

O comando é o seguinte:

 $ tar xvf file.tar 

Comando tar no Linux

3. Compactação gzip sobre arquivo tar com opção -z

Esta opção torna um arquivo tar conhecido como arquivo.tar.gz. É o arquivo de cada arquivo .txt.

O comando é o seguinte:

 $ tar cvzf file.tar.gz *.txt 

Comando tar no Linux

4. Extraindo o arquivo gzip tar com a opção -xvzf

Esta opção pode extrair os arquivos por meio de arquivos arquivados file.tar.gz tar.

O comando é o seguinte:

 $ tar xvzf file.tar.gz 

Comando tar no Linux

5. Criando arquivos tar compactados com a opção -j

Esta opção nos ajudará a criar e compactar arquivos compactados. Tanto a descompactação quanto a compactação levam mais tempo em comparação com o gzip.

O comando é o seguinte:

 $ tar cvfj file.tar.tbz hello1.txt 

Comando tar no Linux

6. Descompacte um único diretório ou arquivo especificado no Linux

Esta opção é usada para descompactar qualquer arquivo em nosso diretório atual ou dentro do diretório especificado com a opção -C.

O comando é o seguinte:

 $ tar -xvf file.tar -C file's path in the directory 

Comando tar no Linux

Ou,

 $ tar -xvf file.tar 

Comando tar no Linux

7. Descompacte vários arquivos .tar.tbz, .tar.gz, .tar no Linux

Esta opção nos ajudará a espalhar ou extraia mais de um arquivo de tar.bz2, tar.gz e um arquivo tar.

O exemplo desta opção é o seguinte:

 $ tar -jxvf file.tar.tbz 'hello1.txt' 

Comando tar no Linux

Ou,

 $ tar -zxvf file.tar.gz 'hello1.txt' 'hello2.txt' 

Comando tar no Linux

Ou,

 $ tar -xvf file.tar 'hello1.txt' 'hello2.txt' 

Comando tar no Linux

8. Verifique o tamanho do arquivo tar.tbz, tar.gz, tar existente

O comando nos ajudará a mostrar o tamanho do arquivo em quilobytes (KB) mencionado acima.

O comando é o seguinte:

 $ tar -czf - file2.tar.tbz | wc -c 

Ou,

 $ tar -czf - file1.tar.gz | wc -c 

Ou,

 $ tar -czf - file.tar | wc -c 

Comando tar no Linux

9. Atualize o arquivo tar existente

No Linux, o comando para atualizar um arquivo tar existente é o seguinte:

 $ tar rvf file.tar *.txt 

10. Lista de conteúdo e descrição do arquivo tar com a opção tf

Esta opção nos ajudará a listar toda a lista de arquivos compactados. Além disso, podemos listar conteúdo específico dentro de qualquer arquivo tar.

O comando é o seguinte:

 $ tar tf file.tar 

Comando tar no Linux

11. Visualize o arquivo com a opção -tvf

No Linux, podemos usar a opção -tvf para visualizar o arquivo.

java int para char

O comando é o seguinte:

 $ tar -tvf file.tar 

Comando tar no Linux

12. Passe o nome do arquivo como argumento para encontrar um arquivo tar

Esta opção pode visualizar os arquivos arquivados com suas informações.

O comando é o seguinte:

 $ tar tvf file.tar filename 

Comando tar no Linux

13. Usando pipe para lançar o 'comando grep' para pesquisar o que estamos procurando

Esta opção nos ajudará a listar apenas a imagem ou texto mencionado em pegada através de arquivos arquivados.

O comando é o seguinte:

 $ tar tvf file.tar | grep 'filename.file' 

Ou,

 $ tar tvf file.tar | grep 'text to search' 

Comando tar no Linux

Introdução aos curingas

Alternativamente, os curingas são chamados de caracteres curinga ou caracteres curinga no Linux. É um símbolo usado para representar ou substituir vários caracteres.

fazer loop while em java

Normalmente, os curingas são um ponto de interrogação (?) que ilustra um caractere individual ou um asterisco (*) que ilustra vários caracteres.

Exemplo-

14. Encontre uma imagem no formato .webp

Isso nos ajudará a extrair apenas arquivos junto com a extensão .webp do arquivo file.tar. A opção -wildcards informa tar para interpretar curingas no nome do arquivo a ser extraído.

O nome do arquivo (*.webp) está entre aspas simples para proteger o curinga (*) contra expansão incorreta por qualquer shell.

O comando é o seguinte:

 $ tar tvf file.tar --wildcards '*.webp' 

Comando tar no Linux

Nota: No comando acima, o símbolo '*' é aplicado na posição do nome do arquivo para pegar cada arquivo disponível naquele diretório específico.

15. Exclua arquivos do arquivo tar

Podemos usar a opção --delete para remover arquivos e um arquivo tar.

O comando é o seguinte:

 $ tar --delete -f archive.tar file_name 

Exemplo:

 tar -delete -f file.tar hello1.txt 

Saída:

Comando tar no Linux

olá1.txt arquivo foi removido do arquivo file.tar:

Comando tar no Linux