I am reading this answer here and run test code
unbuffer xxd -ps /usr/bin/telnet | unbuffer -p less
Missing filename ("less --help" for help).
Why combining two unbuffers give this error?
unbuffer does not read from
stdin. To use
unbuffer in a pipeline, use the
-p flag. Example:
process1 | unbuffer -p process2 | process3
That is the way to do it. But you used
unbuffer at the last process, which doesn’t make sense and doesn’t work (obviously). So your command should look:
unbuffer xxd -ps /usr/bin/telnet | less
unbuffer disables the output buffering that occurs when program output is redirected from non-interactive programs. But
less is not redirecting.
Source of all this text: manpage of unbuffer.