7zip: jak wyodrębnić do standardowego wyjścia?

27

Mam 7z 4.65 i próbuję wyodrębnić pojedynczy plik na standardowe wyjście. Pomoc wiersza polecenia 7z mówi, że -sojest to parametr wiersza polecenia, który należy wypakować do standardowego wyjścia, ale gdy spróbuję:

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

jak mogę to naprawić? Wygląda na to, że nie ma parametru wiersza polecenia, który tłumiłby normalne standardowe komunikaty 7z.

(edycja: odpowiednikiem operacji w „unzip” byłoby

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

co działa dobrze. Ale chciałbym używać 7z z różnych powodów.)

Jason S.
źródło

Odpowiedzi:

16

potokuj go do innego programu, takiego jak

  • trójnik
  • mniej
  • więcej

myślę, że teejest najbliżej tego, czego chcesz, porzuca rzeczy 7z i po prostu daje ci treść.

% 7z e -so dist\dlogpkg.jar META-INF/MANIFEST.MF | tee
akira
źródło
Czy jest jakiś szczególny powód, dla którego uważasz, że teew tej sytuacji jest lepszy niż less?
Andy
Dziwny. „mniej” i „tee” robią to, czego oczekuję, ale „więcej” pozostawia w 7z rzeczy ... dziwne! dlaczego to robi?
Jason S
@Andy: „tee” robi nawet mniej niż „mniej” .. bez przewijania itp. Po prostu przepuszcza bajty i nic więcej.
akira
@akira może chciał przesłać dane wyjściowe do innego programu
beppe9000,
@Andy: dlaczego OP chciał potokować na standardowe wyjście, nigdy nie było pytaniem.
akira
8

W systemie Windows 7z x -so my_file.zip 2> NULnie działa, ale przekierowanie do prawdziwego pliku pomaga:

7z x -so my_file.zip 2> _garbage.txt
ansgri
źródło
7

Próbowałem to rozgryźć. To dało mi to, czego chciałem:

7z x -so my_file.zip 2> /dev/null
Jeremy Miller
źródło
1
Odpowiednik systemu Windows 7z x -so my_file.zip 2> NULnie działa: w jakiś sposób przekierowuje dane do wartości null.
ansgri