O GNU cat
ignora -u
porque sua saída é sempre sem buffer . Então, quando você pede uma saída sem buffer com -u
, você a obtém (mas também a obtém mesmo quando não a pede).
O GNU tail
tem o mesmo comportamento sempre sem buffer.
Para provar isso, em um shell eu fiz:
while :; do echo -ne "hello\t"; sleep 1;done > testtail
que acrescenta a palavra "olá" seguido por uma guia, a cada segundo (sem novas linhas)
Em outro shell que fiz ( cat -T
é semelhante a cat -v
- mostra as guias como ^ I):
tail -f testtail | cat -T
que me dá:
hello^Ihello^Ihello^Ihello^I ...
atualizado a cada segundo.