In this case the program works something like this: you type in `avprobe /foo/bar.wav` and get
Code:
avprobe version 11.4-6:11.4-1~deb8u1, Copyright (c) 2007-2014 the Libav developers
built on Jun 4 2015 19:39:02 with gcc 4.9.2 (Debian 4.9.2-10)
Input #0, wav, from '/foo/bar.wav':
Duration: 00:00:04.14, bitrate: 705 kb/s
Stream #0.0: Audio: pcm_s16le, 44100 Hz, 1 channels, s16, 705 kb/s
# avprobe output
Only the last trivial line comes from standard output; the rest disappears, when using `2> /dev/null`, or when you pipe to `less`.
As far as I know there's a standard output ("&1"), and a standard error output ("&2"). Some programs seem to use the error output for seemingly normal functionality (no errors).
Is there some reason behind it? If so, I'd really like to know, because it's annoying in scripts, and I do some programming as hobby. Or is it just bad practice?