Como extrair arquivos de um arquivo .tar.gz ou .tar.bz2 no Linux

Conteúdo

Bash shell no conceito de desktop Unity

Arquivos tar são arquivos compactados. Você os encontrará muitas vezes ao usar uma distribuição Linux como o Ubuntu ou até mesmo ao usar o terminal no macOS. A seguir, explica como extrair (ou descompacte) o conteúdo de um arquivo tar, também conhecido como tarball.

O que significam .tar.gz e .tar.bz2?

Arquivos que têm um .tar.gz ou um .tar.bz2 extensão são arquivos compactados. Um arquivo com apenas um .tar a extensão não está comprimida, mas eles serão muito raros.

a .tar parte da extensão do arquivo significa tmono Arkansascebolinha, e é a razão pela qual os dois tipos de arquivos são chamados de arquivos tar. Arquivos de alcatrão datam de 1979 quando o tar O comando foi criado para permitir que administradores de sistema arquivem arquivos em fita. Quarenta anos depois, ainda estamos usando o tar comando para extrair arquivos tar em nossos discos rígidos. Alguém em algum lugar provavelmente ainda está usando tar com fita.

a .gz o .bz2 O sufixo da extensão indica que o arquivo foi compactado, usando o gzip o bzip2 algoritmo de compressão. a tar O comando funcionará perfeitamente com ambos os tipos de arquivo, então não importa qual método de compressão foi usado, e deve estar disponível em qualquer lugar que você tenha um shell bash. Você só precisa usar o apropriado tar opções de linha de comando.

Extraia arquivos de arquivos Tar

Digamos que você tenha baixado dois arquivos de partituras. Um arquivo é chamado ukulele_songs.tar.gz , o outro é chamado guitar_songs.tar.bz2. Esses arquivos estão localizados no diretório Downloads.

Dois arquivos tar no diretório de download

Vamos extrair as músicas do ukulele:

tar -xvzf ukulele_songs.tar.gz

À medida que os arquivos são extraídos, estão listados na janela do terminal.

Extração de todos os arquivos do arquivo tar

As alternativas de linha de comando que usamos são:

  • -X: Extrair, recuperar arquivos do arquivo tar.
  • -v: Detalhado, lista os arquivos à medida que são extraídos.
  • -Com: Gzip, use gzip para descompactar o arquivo tar.
  • -F: Arquivo, o nome do arquivo tar que queremos tar trabalhar com. Esta opção deve ser seguida pelo nome do arquivo tar.

Liste os arquivos no diretório com ls e você verá que um diretório chamado Ukulele Songs foi criado. Os arquivos extraídos estão nesse diretório. De onde veio esse diretório? Estava contido no tar arquivo e foi extraído junto com os arquivos.

Diretório de música Ukulele criado no diretório de download

Agora vamos extrair as canções de guitarra. Para fazer isso, vamos usar quase exatamente o mesmo comando de antes, mas com uma diferença importante. a .bz2 O sufixo da extensão nos diz que foi compactado com o comando bzip2. Em vez de usar o-z (gzip), nós vamos usar o -j (bzip2) opção.

tar -xvjf guitar_songs.tar.bz2

Extraindo o arquivo tar de músicas de guitarra para a pasta Downloads

Mais uma vez, os arquivos são listados no terminal à medida que são extraídos. Para ser claros, as alternativas de linha de comando que usamos com tar Para o .tar.bz2 arquivo eram:

  • -X: Extrair, recuperar arquivos do arquivo tar.
  • -v: Detalhado, lista os arquivos à medida que são extraídos.
  • -j: Bzip2, use bzip2 para descompactar o arquivo tar.
  • -F: Arquivo, nome do arquivo tar com o qual queremos trabalhar.

Se listarmos os arquivos no diretório de Downloads, veremos que outro diretório chamado Guitar Songs foi criado.

Diretório de músicas de violão criado no diretório Downloads

Selecione onde extrair os arquivos

Se quisermos extrair os arquivos para um local diferente do diretório atual, podemos especificar um diretório de destino usando o -C (diretório especificado) opção.

tar -xvjf guitar_songs.tar.gz -C ~ / Documentos / Músicas /

Procurando em nosso diretório de Documentos / canções, veremos que o diretório Guitar Songs foi criado.

Diretório de canções de violão criado no diretório Documentos / canções

Observe que o diretório de destino já deve existir, tar não irá criá-lo se não estiver presente. Se você precisa criar um diretório e ter tar extraia arquivos em um comando, você pode fazer isso da seguinte maneira:

mkdir -p ~ / Documentos / Músicas / Baixados && tar -xvjf guitar_songs.tar.gz -C ~ / Documents / Songs / Downloaded /

a -p (pais) opção causa mkdir para criar os diretórios pessoais necessários, certificando-se de que o diretório de destino seja criado.

Olhe dentro dos arquivos tar antes de extraí-los

Até agora, demos um salto de fé e extraímos os arquivos sem sermos vistos. Você pode querer olhar antes de pular. Você pode revisar o conteúdo de um tar antes de extraí-lo usando o -t opção (pronto). Em geral, é conveniente canalizar a saída através do less comando.

tar -tf ukulele_songs.tar.gz | menos

Observe que não é necessário usar o -z opção de listar os arquivos. Só precisamos adicionar o -z opção quando estamos extração arquivos de um .tar.gz procedimentos. Da mesma forma, nós não precisamos do -j opção de listar os arquivos em um tar.bz2 procedimentos.

Conteúdo do arquivo tar canalizado por menos

À medida que avançamos pela saída, podemos ver que tudo no arquivo tar está dentro de um diretório chamado Ukulele Songs, e dentro desse diretório, existem arquivos e outros diretórios.

Segunda visão do conteúdo do arquivo tar canalizado através de menos

Podemos ver que o diretório Ukulele Songs contém diretórios chamados Random Songs, Ramones e Possibles.

Para extrair todos os arquivos de um diretório em um arquivo tar, use o seguinte comando. Observe que o caminho está entre aspas porque há espaços no caminho.

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs / Ramones /"

Extração de uma única pasta do arquivo tar

Para extrair um único arquivo, forneça o caminho e o nome do arquivo.

tar -xvzf ukulele_songs.tar.gz "Músicas de Ukulele / 023 - My Babe.odt"

Extraindo um único arquivo do arquivo tar

Você pode extrair uma seleção de arquivos usando curingas, Onde * representa qualquer sequência de caracteres e ? representa qualquer caractere único. O uso de curingas requer o uso de --wildcards opção.

tar -xvz --wildcards -f ukulele_songs.tar.gz "Canções Ukulele / Possibles / B *"

Extraindo músicas do alcatrão com curingas

Extraia arquivos sem extrair diretórios

Se você não quiser que a estrutura do diretório no arquivo tar seja recriada no seu disco rígido, usar el --strip-components opção. a --strip-components A opção precisa de um parâmetro numérico. O número representa quantos níveis de diretórios devem ser ignorados. Os arquivos em diretórios ignorados ainda são extraídos, mas a estrutura do diretório não é replicada em seu disco rígido.

Se especificarmos --strip-components=1 com nosso arquivo tar de exemplo, O diretório principal das músicas do Ukulele dentro do arquivo tar não foi criado no disco rígido. Os arquivos e diretórios que seriam extraídos para esse diretório são extraídos para o diretório de destino.

tar -xvzf ukulele_songs.tar.gz --strip-components = 1

Extraindo arquivos do arquivo tar com --strip-components = 1

Existem apenas dois níveis de aninhamento de diretório em nosso arquivo tar de exemplo. Então, se usarmos --strip-components=2, todos os arquivos são extraídos para o diretório de destino e nenhum outro diretório é criado.

tar -xvzf ukulele_songs.tar.gz --strip-components = 2

Extraindo arquivos do arquivo tar com --strip-components = 2

Se você olhar para o Linux página man você vai ver isso tar você tem que ser um bom candidato para o título de “comando com as alternativas de linha de comando”. Por sorte, para nos permitir extrair arquivos de .tar.gz e tar.bz2 arquivos com um bom grau de controle granular, só precisamos nos lembrar de algumas dessas opções.

setTimeout(função(){
!função(f,b,e,v,n,t,s)
{E se(f.fbq)Retorna;n = f.fbq = função(){n.callMethod?
n.callMethod.apply(n,argumentos):n.queue.push(argumentos)};
E se(!f._fbq)f._fbq = n;n.push = n;n.loaded =!0;n.version = ’2.0′;
n.queue =[];t = b.createElement(e);t.async =!0;
t.src = v;s = b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, documento,'roteiro',
‘Https://connect.facebook.net/en_US/fbevents.js ’);
fbq('iniciar', ‘335401813750447’);
fbq('acompanhar', ‘PageView’);
},3000);

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.