Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: XUbuntu
Por izaias
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Tar: Descompactando arquivos específicos
Linux user
Publicado por Francisco Ambrozio em 04/02/2010

Login: Xico_Ambrozio, 305133 pontos | Blog: http://franciscoambrozio.wordpress.com
[ Hits: 5005 ]

Tar: Descompactando arquivos específicos

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:

$ 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

:)

Grande abraço.


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Declarando "netbios name" no Samba
   Dica Linux recomendada Renomeando arquivos simultaneamente com apenas uma linha de comando
   Dica Linux recomendada Apagar somente os arquivos
   Dica Linux recomendada Facilitando as permissões no Linux com uso de ACLs
   Dica Linux recomendada Adicionando Kubuntu e Xubuntu no Ubuntu

Comentários
[1] Comentário enviado por Daemonio em 04/02/2010 - 04:34h:

Vlw cara, estava procurando exatamente por isso =D
t+

[2] Comentário enviado por Scyther Kazpor em 04/02/2010 - 12:22h:

Outra forma clique o botão direito sobre o arquivo

(como faria com o Windows) e Extrair aqui

no gerenciador de arquivos Nautilus.



abs.


[3] Comentário enviado por Xico_Ambrozio em 04/02/2010 - 14:11h:

@Scyther_Kaspor

É... o mundo do Linux se resume a Desktop e interface gráfica. Nem é usado em servidores e modo texto. ;)

[4] Comentário enviado por Fellype em 04/02/2010 - 16:15h:

Muito boa dica!

Apenas adicionando informação:
Ao invés de usar:
$ tar tvf NossoArquivo.tar.gz | less
para visualizar o conteúdo do arquivo, pode se usar diretamente:
$ less NossoArquivo.tar.gz
O resultado é o mesmo.

[5] Comentário enviado por albfneto em 05/02/2010 - 20:42h:

Xico... rsrsrs é claro que é usado nos servidores....rsrsrs
Sempre demonstrando seu ótimo conhecimento de comandos!
Boa dica, foi pros meus favoritos.
Tava sumido! Bom retorno! Bom findis!


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.