Como posso visualizar o conteúdo de um arquivo tar.gz (nomes de arquivo + tamanho do arquivo)

6

Eu não posso usar tar -tz porque a versão solaris que estou usando não aceita a opção -z.

Eu tentei algo como gunzip file.tar.gz | tar -tv , mas isso só dá:

tar: /dev/rmt/0: No such file or directory

... e descompacta o tar.gz para .tar que é indesejado. Eu só quero olhar dentro deles sem modificações.

    
por dr jerry 05.08.2011 / 14:35

6 respostas

7

Não tem uma caixa do Solaris à mão, mas não seria algo como zcat file.tar.gz | tar -tv fazer o truque? Isso pode precisar ser gzcat ou gunzip -c no Solaris, não tenho certeza.

ATUALIZAÇÃO: @Riccardo Murri ressalta que o comportamento padrão de tar no Solaris é NÃO para ler stdin (o que parece muito un-Unixish, mas ce la vie), então zcat file.tar.gz | tar -tv -f - é provavelmente o que você precisa.

UPDATE 2: Finalmente encontrei o que parece ser um site decente para o Solaris man pages, então eu apresento a você man gunzip e man tar .

    
por 05.08.2011 / 15:25
2

A resposta certa se você tiver apenas a versão do sol do tar é:

gzip -dc file.tar.gz | tar -tf -

como dado por Riccardo Murri em um comentário acima. Você pode usar esse comando em qualquer versão do Solaris desde o início do dia.

Se você tivesse o tar GNU disponível, é claro que você nem faria a pergunta. Eu acredito que no Solaris 11 que o GNU tar é instalado por padrão, no entanto, ele será chamado de gtar para diferenciá-lo da versão padrão do Sun do tar.

Se o GNU tar, por alguma razão, não estiver instalado em seu sistema Solaris 11, você poderá instalá-lo da seguinte forma:

pkg install //solaris/archiver/gnu-tar

É um pouco irônico que o GNU tar esteja disponível agora na instalação padrão do Solaris 11, porque ele se tornou muito menos necessário: parece que o Oracle / Sun atualizou seu próprio tar para oferecer suporte à compactação (semelhante ao GNU tar ) e pode lidar com arquivos tar problemáticos do Linux que anteriormente causariam um erro se você tentasse descompactar com Sun tar.


No Solaris 10 você pode esperar que o seu SysAdmin tenha sido gentil o suficiente para instalar o conteúdo do "Solaris Companion CD", neste caso você encontrará o tar GNU em /opt/sfw/bin/gtar . Infelizmente, muitos Solaris SysAdmins se orgulham de deliberadamente não instalar os pacotes da Sun (agora Oracle) que tornam um sistema Solaris "compatível com GNU" quando configuram um host. Me bate porque.

Em qualquer caso: Você deve sempre ter o GNU tar em seu sistema (pelo menos no < Solaris11). A maioria dos pacotes de código aberto é empacotada com o tar GNU e, em alguns casos, eles não podem ser descompactados usando o Sun tar devido a algumas diferenças em como os links simbólicos são tratados, acredito. O oposto nunca é verdadeiro, ou seja, o GNU tar sempre pode descompactar um arquivo que foi criado com o Sun tar.

Na sua organização: Certifique-se de que o GNU tar faça parte do seu pacote padrão para os novos hosts Solaris!

    
por 15.08.2012 / 17:24
1

Experimente tar -tvf <filename>.tar.gz (:

    
por 05.08.2011 / 14:58
1

O AVFS é um sistema de arquivos virtual (baseado no FUSE ) que permite que você veja dentro de arquivos como se fossem diretórios (entre outros). É suportado no Solaris, mas não sei se existem pacotes disponíveis; talvez seja necessário compilar da fonte.

Execute mountavfs de uma vez por todas (ele persistirá até a próxima reinicialização; você deverá colocá-lo em ~/.profile ). Isso cria uma visão de todo o sistema de arquivos com raiz em ~/.avfs . Dentro dessa visão, cada arquivo tem um diretório associado cujo nome tem um # extra no final. Este diretório contém o conteúdo do arquivo.

mountavfs
ls -lR "~/.avfs$PWD/file.tar.gz#"
cp -p "~/.avfs$PWD/file.tar.gz#/path/to/file-to-extract" .
    
por 06.08.2011 / 02:29
1

No Solaris 10, use gzip -dc target.tar.gz | tar xf - para extrair, depois de extrair você deve poder ver o diretório.

    
por 23.11.2012 / 13:33
1

Você perdeu a chave -c :

gunzip -c file.tar.gz | tar -tv
    
por 25.06.2014 / 13:38