Abra o pdf em tar.gz sem extrair

3

Eu tenho um tar.gz que tem pdfs nele Eu quero abrir um pdf específico sem extraí-lo Isso é possível usando terminal através de algum comando (Eu sei que podemos fazê-lo usando GUI, mas eu quero usar o terminal)

    
por Gaurav Dalpatyan 17.05.2014 / 10:40

3 respostas

4

Para listar (não abrir) arquivos no archive sem extrair, execute o seguinte comando:

tar -tf myarchive.tar.gz

Para extrair e abrir diretamente, execute o seguinte comando:

tar -xzf myarchive.tar.gz && evince *.pdf

Para um processo rápido: (extendido em /tmp/mypdf e depois removido)

mkdir /tmp/mypdf && tar -xzf myarchive.tar.gz -C /tmp/mypdf && cd /tmp/mypdf && evince *.pdf && cd .. && rm -r mypdf

Em que myarchive.tar.gz é o nome do seu arquivo de amostra.

Para extrair um arquivo específico ,

mkdir /tmp/mypdf && tar -xzf myarchive.tar.gz -C /tmp/mypdf "<file.pdf>" && cd /tmp/mypdf && evince *.pdf && cd .. && rm -r mypdf

onde "<file.pdf>" é o nome do arquivo daquele arquivo específico que você deseja extrair & amp; aberto.

Espero que seja útil. Para o comando avançado de função script é útil, executando o script para fins específicos.

    
por Pandya 17.05.2014 / 11:55
4

Para fazer isso em uma única linha de comando, você precisa de um visualizador de PDF que possa manipular a entrada de um pipe. O único visualizador com essa opção que eu conheço é o display do ImageMagicks. Não é muito confortável (arquivos maiores podem demorar um pouco), mas pode ser conveniente para o seu propósito.

tar xOfz <archive> <path/to/file/in/archive> | display

(Arquivos pdf maiores podem demorar um pouco.)

    
por TAq 17.05.2014 / 11:49
3

Abrir sem extrair não é possível. Aplicações GUI estão extraindo os arquivos temporariamente antes de abri-los ...

Se você tiver um arquivo tar.gz contendo arquivos PDF e quiser extrair um ou mais arquivos usando a linha de comando, poderá usar:

tar -xzf MyArchive.tar.gz MyPDF5.pdf

tar -xzf MyArchive.tar.gz MyPDF6.pdf MyPDF3.pdf

tar -xzf MyArchive.tar.gz "My PDF 128.pdf"

Você também pode extrair um arquivo de uma pasta no arquivo (a estrutura do diretório será mantida):

tar -xzf MyArchive.tar.gz "My Archive Folder/My Other PDF.pdf"

Se você não deseja manter a estrutura de diretórios, você pode usar --strip-components seguido pelo nível da subpasta:

tar -xzf MyArchive.tar.gz "My Archive Folder/My Other PDF.pdf" --strip-components 1

tar -xzf MyArchive.tar.gz "e-Books/Favorites/Ubuntu Linux/My PDF about Ubuntu.pdf" --strip-components 3

Por favor, note que o seu nome de arquivo também deve ser colocado entre aspas se contiver espaços.

Nos exemplos acima, suponho que você esteja na pasta que contém o arquivo e que você deseja extrair lá.

Antes de usar o comando tar, você deve usar o comando "cd" para ir para a pasta na qual você deseja extrair os arquivos. Se o arquivo estiver localizado em outra pasta, basta colocar seu caminho completo completo ["/ home / myusername / Desktop / Minha Pasta / Meu Outro Arquivo.tar.gz"] (usando um caminho relativo também pode ser útil em alguns casos).

PS: Se fosse um arquivo de texto simples (txt), o parâmetro "-O" no final do comando poderia ter sido o que você estava procurando, mas como é um arquivo PDF, não é muito útil. .. De acordo com TAq answer , "display" do ImageMagick é capaz de lidar com essa saída em PDF da maneira que você deseja com um pipe .

tar -xzf MyArchive.tar.gz "My PDF 128.pdf" -O | display
    
por Golboth 17.05.2014 / 11:17