Tar: Descompactando arquivos específicos
Autor/fonte: Francisco Ambrozio
E-mail/Url: http://www.vivaolinux.com.br/dica/Tar-Descompactando-arquivos-especifi...
Tags: [ tar ]
Se você tem um arquivo "tarado" gigantesco (calma, não é o que você está pensando! Arquivo "tarado" nada mais é do que um arquivo compactado pelo utilitário tar com um de seus métodos de compressão) e quer extrair apenas um mísero arquivo naquela maçaroca toda, aqui vai a dica.
Em primeiro lugar, o tar nos possibilita listar os arquivos que estão comprimidos em um tarball. A opção em linha de comando que utilizamos para isto é a -t ou --list. Logo, a para listarmos o conteúdo de nosso arquivo tar, usamos:
É lógico que se o arquivo for muito grande ficará difícil ler a saída deste comando, podemos utilizar um paginador para nos ajudar:
Ou então buscar o arquivo que desejamos especificamente:
Tendo encontrado nosso precioso arquivo, para extraí-lo usamos a seguinte sintaxe:
Vamos deixar ainda mais claro. Suponhamos que em NossoArquivo.tar.gz contenha o arquivo ProjetoImportante.txt, que está no diretório Projetos que por sua vez está no diretório Trabalho e queremos apenas este arquivo, logo o comando seria:
Com isto iremos extrair o arquivo Trabalho/Projetos/ProjetoImportante.txt no diretório atual. Se quisermos direcioná-lo à um diretório específico, usamos a opção -C do tar.
Assim, Trabalho/Projetos/ProjetoImportante.txt será extraído no diretório ${HOME}/Arquivos. Importante: para que tenhamos o resultado desejado, neste caso, a ordem dos fatores altera o produto. O comando tar vxf NossoArquivo.tar.gz Trabalho/Projeto/ProjetoImportante.txt -C ${HOME}/Arquivos não funcionará para extrair o arquivo desejado no local indicado.
Obs.: a mesma abordagem pode ser utilizada para extrair um diretório e todo o seu conteúdo. Em nosso exemplo, se quiséssemos extrair todo o conteúdo de Projetos, utilizaríamos:
Em tempo, mais uma dica: Digamos que você tenha vários arquivos que tem um determinado padrão na composição de seu nome e que você deseja usar isto para agilizar seu trabalho e extraí-los todos de uma só vez. Exemplo, no diretório Projetos temos vários arquivos que começam com a palavra Projeto e queremos usar o coringa "*" para extraí-los. Neste caso temos que usar a opção --wildcards do tar, assim:
Enfim pessoal, é isto! Dúvidas? Deixem de preguiça e:
Em primeiro lugar, o tar nos possibilita listar os arquivos que estão comprimidos em um tarball. A opção em linha de comando que utilizamos para isto é a -t ou --list. Logo, a para listarmos o conteúdo de nosso arquivo tar, usamos:
$ tar tvf NossoArquivo.tar.gz
É lógico que se o arquivo for muito grande ficará difícil ler a saída deste comando, podemos utilizar um paginador para nos ajudar:
$ tar tvf NossoArquivo.tar.gz | less
Ou então buscar o arquivo que desejamos especificamente:
$ tar tvf NossoArquivo.tar.gz | grep NomeDoArquivoProcurado
Tendo encontrado nosso precioso arquivo, para extraí-lo usamos a seguinte sintaxe:
$ tar vxf NossoArquivo.tar.gz caminho/para/arquivo/desejado
Vamos deixar ainda mais claro. Suponhamos que em NossoArquivo.tar.gz contenha o arquivo ProjetoImportante.txt, que está no diretório Projetos que por sua vez está no diretório Trabalho e queremos apenas este arquivo, logo o comando seria:
$ tar vxf NossoArquivo.tar.gz Trabalho/Projetos/ProjetoImportante.txt
Com isto iremos extrair o arquivo Trabalho/Projetos/ProjetoImportante.txt no diretório atual. Se quisermos direcioná-lo à um diretório específico, usamos a opção -C do tar.
$ tar vxf NossoArquivo.tar.gz -C ${HOME}/Arquivos Trabalho/Projetos/ProjetoImportante.txt
Assim, Trabalho/Projetos/ProjetoImportante.txt será extraído no diretório ${HOME}/Arquivos. Importante: para que tenhamos o resultado desejado, neste caso, a ordem dos fatores altera o produto. O comando tar vxf NossoArquivo.tar.gz Trabalho/Projeto/ProjetoImportante.txt -C ${HOME}/Arquivos não funcionará para extrair o arquivo desejado no local indicado.
Obs.: a mesma abordagem pode ser utilizada para extrair um diretório e todo o seu conteúdo. Em nosso exemplo, se quiséssemos extrair todo o conteúdo de Projetos, utilizaríamos:
$ tar vxf NossoArquivo.tar.gz Trabalho/Projetos
Em tempo, mais uma dica: Digamos que você tenha vários arquivos que tem um determinado padrão na composição de seu nome e que você deseja usar isto para agilizar seu trabalho e extraí-los todos de uma só vez. Exemplo, no diretório Projetos temos vários arquivos que começam com a palavra Projeto e queremos usar o coringa "*" para extraí-los. Neste caso temos que usar a opção --wildcards do tar, assim:
$ tar --wildcards -vxf NossoArquivo.tar.gz Trabalho/Projetos/Projeto*
Enfim pessoal, é isto! Dúvidas? Deixem de preguiça e:
$ man tar

Enviado por xKuRt em 04/02/2010 às 08:46
Itens relacionados
Colocar arquivos mostrados por um comando em um pacote .tar no Linux
Como descompactar arquivos no Linux
Firestarter: O que é?!
Criação de arquivos TAR utilizando o cpio
Compactando arquivos no Linux
Avaliação
Esta publicação ainda não foi avaliada!
A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.
Comentários
Este artigo ainda não foi comentado ou o(s) comentário(s) que foi(ram) enviado(s) a ele ainda não foi(ram) publicado(s).
Envio de comentário:
Quinta, 09 de Setembro de 2010
Área restrita
Leitura recomendada
Últimas publicações
Top 5 membros
- dddweb213 pts
- Jotah191 pts
- fbinasco165 pts
- andersonop153 pts
- fredbcn117 pts
Últimos membros cadastrados
- andytsunamiem 09/09
- Sanmylem 09/09
- eb210em 09/09



