Чи існує якийсь спосіб постійно стискати вихід програми (майже в режимі реального часу)?
Наприклад, у мене є ця програма, яка виробляє (багато) вихід на 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/ тощо для виконання стиснення.