A informação na pergunta é incompleta. No entanto, a saída de amostra mostra mais caracteres na árvore codificada incorretamente do que se esperaria. Provavelmente, o que está acontecendo é que tree
está sendo executado em um ambiente no qual ele pode enviar o UTF-8. Para os caracteres gráficos usados, são 3 bytes por caractere especial. De um lado (local ou remoto não importa), OP está usando algo que recodifica os em UTF-8, aumentando o número de bytes (já que cada um dos bytes na saída de tree
estará no intervalo 128-255).
Por exemplo, se o OP estiver rodando em xterm (usando lite ), e confundiu as coisas (na verdade) dizendo que a codificação real é en_GB
, ele irá traduzir cada um desses 128-255 valores em 2-3 bytes ("de volta" em UTF-8).
A propósito, bash não é relevante para a questão, porque é árvore (um utilitário distinto) que escreve o texto.