I am reading this answer here and run test code

unbuffer xxd -ps /usr/bin/telnet | unbuffer -p less

but get Missing filename ("less --help" for help).

Why combining two unbuffers give this error?


Normally, 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

Explanation: 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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.