Header Ads

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

Arquivos tar são arquivos compactados. Você os encontrará com frequência ao usar uma distribuição Linux como o Ubuntu ou até mesmo ao usar o terminal no macOS. Veja como extrair - ou não - o conteúdo de um arquivo tar, também conhecido como tarball.

O que faz .tar.gz e. tar.bz2 Significa?

Arquivos que possuem uma extensão .tar.gz ou .tar.bz2 são arquivos compactados. Um arquivo com apenas uma extensão .tar é descompactado, mas isso será muito raro.

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

O sufixo de extensão .gz ou .bz2 indica que o arquivo foi compactado, usando o algoritmo de compactação gzip ou bzip2. O comando tar funcionará bem com os dois tipos de arquivo, por isso, não importa qual método de compactação foi usado, e ele deve estar disponível em todos os lugares em que você tiver um shell Bash. Você só precisa usar as opções de linha de comando tar apropriadas.

Extraindo 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 no diretório Downloads.

Vamos extrair as músicas do ukulele:

 tar -xvzf ukulele_songs.tar.gz [/ PRE ] 

Conforme os arquivos são extraídos, eles são listados na janela do terminal.

As opções de linha de comando que usamos são:

  • -x: Extraia, recupere os arquivos do arquivo tar.
  • -v: Verbose, liste os arquivos conforme eles estão sendo extraídos.
  • -z: Gzip, use gzip para descompacte o arquivo tar.
  • -f: File, o nome do arquivo tar que queremos que o tar trabalhe. Essa opção deve ser seguida pelo nome do arquivo tar.

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

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

[PRÉ] tar -xvjf guitar_songs.tar.bz2

Mais uma vez, os arquivos são listados no terminal à medida que são extraídos. Para ser claro, as opções de linha de comando que usamos com tar para o arquivo .tar.bz2 foram:

  • -x: Extraia, recupere os arquivos do arquivo tar. < li> -v: Verbose, lista os arquivos conforme eles estão sendo extraídos.
  • -j: Bzip2, use o bzip2 para descompactar o arquivo tar.
  • -f: File, name of o arquivo tar que queremos que o tar trabalhe.

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

Escolhendo para onde extrair os arquivos para

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

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

Olhando em nosso diretório Documentos / Músicas, veremos a guitarra O diretório de músicas foi criado.

Observe que o diretório de destino já deve existir, o tar não o criará se não estiver presente. Se você precisar criar um diretório e fazer com que o tar extraia os arquivos em um único comando, faça o seguinte:

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

A opção -p (parents) faz com que o mkdir crie qualquer diretório pai que seja necessário, garantindo que o diretório de destino seja criado.

Procurando por arquivos de alcatrão antes de extraí-los

Até agora, nós apenas demos um salto de fé e extraímos os arquivos sem ser vistos. Você pode gostar de olhar antes de pular. Você pode revisar o conteúdo de um arquivo tar antes de extraí-lo usando a opção -t (list). Geralmente, é conveniente canalizar a saída por meio do comando menor.

 tar -tf ukulele_songs.tar.gz | less 

Observe que não precisamos usar a opção -z para listar os arquivos. Só precisamos adicionar a opção -z quando extrairmos arquivos de um arquivo .tar.gz. Da mesma forma, não precisamos da opção -j para listar os arquivos em um arquivo tar.bz2.

Percorrendo a saída, podemos ver que tudo no arquivo tar é mantido dentro de um diretório chamado Ukulele Songs, e dentro desse diretório, existem arquivos e outros diretórios.

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

Para extrair todos os arquivos de um diretório dentro de 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 "Músicas do ukulele / Ramones /" 

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

 tar -xvzf ukulele_songs.tar.gz "Canções do Ukulele / 023 - My Babe. odt "

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

 tar -xvz --wildcards -f ukulele_songs.tar.gz "Músicas do ukulele / possíveis / B *" 

Extraindo arquivos sem extrair diretórios

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

Se especificarmos --strip-components = 1 com nosso arquivo tar de exemplo, as Canções do Ukulele são as mais importantes O diretório dentro do arquivo tar não é criado no disco rígido. Os arquivos e diretórios que seriam extraídos para esse diretório são extraídos no diretório de destino.

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

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

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

Se você olhar a página man do Linux, verá que o tar deve ser um bom candidato para o título de “comando com o maior número de comandos opções de linha. ”Felizmente, para nos permitir extrair arquivos de arquivos .tar.gz e tar.bz2 com um bom grau de controle granular, precisamos lembrar apenas algumas dessas opções.

Via: How to Geek

Nenhum comentário