7zip: como extrair para saída std?


28

Eu tenho 7z 4,65 e estou tentando extrair um único arquivo para a saída padrão. A ajuda da linha de comando 7z diz que -soé o parâmetro da linha de comando a ser extraído para a saída padrão, mas quando tento isso:

>>> 7z e -so dist\dlogpkg.jar META-INF/MANIFEST.MF

7-Zip 4.65  Copyright (c) 1999-2009 Igor Pavlov  2009-02-03
Error:
I won't write data and program's messages to same terminal

Como posso consertar isso? Não parece haver um parâmetro de linha de comando para suprimir as mensagens stdout 7z normais.

(editar: a operação equivalente em "descompactar" seria

unzip -p dist\dlogpkg.jar META-INF/MANIFEST.MF

o que funciona bem Mas eu gostaria de usar o 7z por vários motivos.)

Respostas:


17

canalizá-lo para outro programa como

  • tee
  • Menos
  • Mais

Eu acho que teechega mais perto do que você quer, deixa cair o material 7z e apenas fornece o conteúdo.

% 7z e -so dist\dlogpkg.jar META-INF/MANIFEST.MF | tee

Existe alguma razão em particular para você achar teemelhor nesta situação do que less?
Andy

Ímpar. "less" e "tee" fazem o que eu espero, mas "more" sai no material 7z .... bizarro! Por que ele faz isso?
Jason S

@ Andy: "tee" faz ainda menos do que "less" .. sem rolagem para trás etc. apenas deixa os bytes passarem e nada mais.
Akira

@akira talvez ele queria canalizar a saída para outro programa
beppe9000

@ Andy: por que a OP queria chegar ao stdout nunca foi uma pergunta.
Akira

8

No Windows, 7z x -so my_file.zip 2> NULnão funciona, mas o redirecionamento para um arquivo real ajuda:

7z x -so my_file.zip 2> _garbage.txt

7

Eu também estava tentando descobrir isso. Isso me deu o que eu queria:

7z x -so my_file.zip 2> /dev/null

1
O equivalente do Windows 7z x -so my_file.zip 2> NULnão funciona: de alguma forma também redireciona os dados para nulo.
ansgri
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.