Tee and file redirections are very slow to write anything.

Takashi Yano takashi.yano@nifty.ne.jp
Wed Feb 24 23:26:54 GMT 2021


On Thu, 25 Feb 2021 09:41:49 +1100
Duncan Roe wrote:
> On Wed, Feb 24, 2021 at 04:58:24PM -0500, Eliot Moss wrote:
> > On 2/24/2021 3:48 PM, ASSI wrote:
> > > Hamish McIntyre-Bhatty via Cygwin writes:
> > > > I found recently when trying to save output from a script for later
> > > > inspection that "tee" and file redirections seem to have massive
> > > > delays when run in Cygwin - usually nothing is written to file or
> > > > stdout until after the command has finished - not very helpful.
> > >
> > > You will want to switch from fully buffered to line-buffered or even
> > > unbuffered output.
> >
> > And this does not have to do with Cygwin.  The same happens on Linux.
> > The default is that terminal I/O is unbuffered while other stream are
> > buffered.  Pipes come under "other streams".  One can make programmatic
> > changes to get around this, but most programs won't override the
> > default behavior on their own ...
> >
> > Best -- Eliot Moss
> 
> The (Linux) default is that terminal I/O is *line* buffered
> 
> The man page for tee doesn't show an option to change buffering, while that for
> grep does.

However, in this case, output is not a 'terminal I/O' because it is
redirected to a file or a pipe.

Do these help?

"stdbuf -o L bash ./path/to/script.sh > stdout.log"
"stdbuf -o L bash ./path/to/script.sh | tee stdout.log"

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>


More information about the Cygwin mailing list