7zip: как извлечь в стандартный вывод?

28

У меня 7z 4.65 и я пытаюсь извлечь один файл в стандартный вывод. Справка командной строки 7z говорит, что -soэто параметр командной строки для извлечения в стандартный вывод, но когда я пытаюсь это сделать:

>>> 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

Как я могу это исправить? Кажется, что нет параметра командной строки для подавления обычных сообщений 7z stdout.

(редактировать: эквивалентная операция в "распаковать" будет

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

который отлично работает Но я бы хотел использовать 7z по разным причинам.)

Джейсон С
источник

Ответы:

17

передать его в другую программу, такую ​​как

  • тройник
  • Меньше
  • Больше

я думаю, что он teeближе всего подходит к тому, что вы хотите, он отбрасывает материал 7z и просто дает вам контент.

% 7z e -so dist\dlogpkg.jar META-INF/MANIFEST.MF | tee
Акира
источник
Есть ли какая-то конкретная причина, почему вы думаете, что teeлучше в этой ситуации, чем less?
Энди
Странный. "less" и "tee" делают то, что я ожидаю, но "more" оставляет в 7z материал .... странно! почему он это делает?
Джейсон С
@Andy: "tee" делает даже меньше, чем "less" ... без прокрутки назад и т. Д., Он просто пропускает байты и ничего больше.
Акира
@akira, может быть, он хотел передать вывод в другую программу
beppe9000
@Andy: почему OP не хотел, чтобы труба к stdout никогда не была вопросом.
Акира
8

В Windows 7z x -so my_file.zip 2> NULне работает, но перенаправление на реальный файл помогает:

7z x -so my_file.zip 2> _garbage.txt
ansgri
источник
7

Я также пытался понять это. Это дало мне то, что я хотел:

7z x -so my_file.zip 2> /dev/null
Джереми Миллер
источник
1
Эквивалент Windows 7z x -so my_file.zip 2> NULне работает: как-то также перенаправляет данные на ноль.
Ансгри