Чи існує якийсь спосіб постійно стискати вихід програми (майже в режимі реального часу)?
Наприклад, у мене є ця програма, яка виробляє (багато) вихід на stderr. Я хочу зробити щось подібне./my-program 2> tar -<someoptions> stderroutput.tar.gz
Чи існує якийсь спосіб постійно стискати вихід програми (майже в режимі реального часу)?
Наприклад, у мене є ця програма, яка виробляє (багато) вихід на stderr. Я хочу зробити щось подібне./my-program 2> tar -<someoptions> stderroutput.tar.gz
Відповіді:
Якщо я правильно розумію, ви хочете стиснути вміст стандартного потоку помилок і зберегти його у файл. Якщо так, спробуйте це:
./my-program 2>&1 | gzip > stderroutput.gz
tar
не стискає дані; він призначений лише для архівації декількох файлів в один. Для стиснення потоків, вам потрібно буде використовувати gzip
, xz
, bzip2
або аналогічний. (Хоча gzip
це найгірший показник стиснення, він також є одним з найшвидших, тому він може бути найкращим вибором тут.)
Наприклад:
myapp 2> >(gzip > stderr.gz)
або
(myapp 2>&1 1>&3 | gzip > stderr.gz) 3>&1
gzip
/ тощо для виконання стиснення.