Sua configuração para LANG deve corresponder à do terminal. Mais precisamente, sua configuração para LC_CTYPE (a codificação de caracteres) deve corresponder à codificação do terminal, as outras configurações de local não precisam corresponder. E a codificação do terminal é geralmente especificada por uma opção do emulador de terminal e não por uma variável de código de idioma. O LC_CTYPE combina duas indicações: diz aos aplicativos qual codificação usar no terminal (tanto para entrada quanto para saída) e informa aos aplicativos qual codificação usar com os arquivos. Nos casos 2 e 3, você disse a ls para exibir a saída em uma codificação que é diferente da do terminal, então a saída é distorcida.
Se você trabalhar com as codificações UTF-8 e Latin-1 em momentos diferentes, configure seu terminal para usar o UTF-8. Isso deve fazer com que defina LC_CTYPE para um valor indicando UTF-8; não substitua essa configuração. (Se o emulador de terminal não definir LC_CTYPE , substitua-o no arquivo de inicialização do shell ou durante toda a sessão.) Para trabalhar com dados do latin-1 em um terminal UTF-8, use luit (incluído no conjunto de utilitários X).
LC_CTYPE=en_US.iso88591 luit
(Você pode usar qualquer outra localidade com a mesma codificação, por exemplo, LC_CTYPE=es_ES.iso88591 luit .)