Есть ли способ непрерывно сжимать вывод программы (практически в реальном времени)?
Например, у меня есть эта программа, которая производит (много) вывод в 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