Постійно стискаючи струм більш жорсткий


2

Чи існує якийсь спосіб постійно стискати вихід програми (майже в режимі реального часу)?

Наприклад, у мене є ця програма, яка виробляє (багато) вихід на stderr. Я хочу зробити щось подібне./my-program 2> tar -<someoptions> stderroutput.tar.gz

Відповіді:


2

Якщо я правильно розумію, ви хочете стиснути вміст стандартного потоку помилок і зберегти його у файл. Якщо так, спробуйте це: ./my-program 2>&1 | gzip > stderroutput.gz


2

tarне стискає дані; він призначений лише для архівації декількох файлів в один. Для стиснення потоків, вам потрібно буде використовувати gzip, xz, bzip2або аналогічний. (Хоча gzipце найгірший показник стиснення, він також є одним з найшвидших, тому він може бути найкращим вибором тут.)

Наприклад:

myapp 2> >(gzip > stderr.gz)

або

(myapp 2>&1 1>&3 | gzip > stderr.gz) 3>&1

Мені не було відомо, що tar не стискає дані (лише файли). Дякую.
anand.trex

@ Trex279: Строго кажучи, смола не стискуються взагалі . Він пакує файли лише в архіви і автоматично викликає gzip/ тощо для виконання стиснення.
grawity
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.