Quando a saída de w
vai para um terminal. w
consulta o driver do terminal quanto ao número de colunas e ajusta a largura de acordo.
Quando a saída não vai para um terminal, como quando vai para um cano, ele retorna a uma largura fixa de 80 colunas. As versões de procps
desde a versão 3.3.2 permitem substituir esse padrão com a variável de ambiente $COLUMNS
.
Algumas camadas, como zsh
ou bash
, definem a variável $COLUMNS
, mas não as exportam. Neles, você pode fazer
COLUMNS=$COLUMNS w | tail
Se você não quiser que as linhas sejam truncadas, independentemente do tamanho do terminal, faça o seguinte:
COLUMNS=512 w | tail
Se você tiver um w
mais antigo, provavelmente não terá outra opção a não ser emular um terminal amplo. Com zsh
:
zmodload zsh/zpty
zpty W 'stty cols 512 -opost && w'
{zpty -r W} | tail
zpty -d W
Outras coisas que podem emular um terminal:
ssh localhost -t 'stty cols 512 -opost && w' | tail
expect -c 'set stty_init {cols 512 -opost}; spawn -noecho w; expect eof' | tail