Resultados diferentes para ls ao acessar o Ubuntu via SSH de diferentes clientes (Windows-PuTTy, Mac-Terminal)

15

Considere a seguinte estrutura de diretórios, impressa na tela usando ls -l "$dir"( $diré uma variável bash que está para alguma pasta no mesmo servidor, alguns níveis acima), em um servidor Ubuntu remoto (mais precisamente, Ubuntu 16.04.4 LTS (GNU / Linux 4.4) .0-116-genérico x86_64)):

-rw-r--r-- 1 user group     12 Apr  2 12:34 FILE1
-rwxr--r-- 1 user group    287 Apr 23  2017 File_
-rw-r--r-- 1 user group      0 Apr 21  2017 file_1
-rw-r--r-- 1 user group    272 Apr  3 22:16 myFile
-rw-r--r-- 1 user group  47633 Apr 11 14:01 myFile.txt
-rw-r--r-- 1 user group  37030 Apr 11 14:16 myfile1
-rw-r--r-- 1 user group      0 Apr 11 21:23 nothing_here
-rw-r--r-- 1 user group      2 Apr 22  2017 small_file
-rwxr-x--- 1 user group 262529 Apr  8 15:31 story

Isso é proveniente de um MacBook e usa o terminal sshinterno e a instalação pronta para uso (OS X versão 10.13.3, como o terminal me diz).

Considere, em comparação, o mesmo servidor acessado de uma máquina Windows executando o PuTTy versão 0.70:

-rwxr--r-- 1 user group    287 Apr 23  2017 File_
-rw-r--r-- 1 user group      0 Apr 21  2017 file_1
-rw-r--r-- 1 user group     12 Apr  2 12:34 FILE1
-rw-r--r-- 1 user group    272 Apr  3 22:16 myFile
-rw-r--r-- 1 user group  37030 Apr 11 14:16 myfile1
-rw-r--r-- 1 user group  47633 Apr 11 14:01 myFile.txt
-rw-r--r-- 1 user group      0 Apr 11 21:23 nothing_here
-rw-r--r-- 1 user group      2 Apr 22  2017 small_file
-rwxr-x--- 1 user group 262529 Apr  8 15:31 story

Observe a classificação diferente dos 6 primeiros arquivos em cada imagem.

Considerando que os comandos estão sendo executados no servidor e não nos computadores clientes, não seria de esperar diferença entre as duas saídas. Por que eles não são idênticos?

Edit 1: Conforme mencionado nos comentários, verifiquei e o terminal do Mac está definido como xterm-256colorenquanto o Windows está definido como xterm. Uma rápida mudança na configuração do Mac xtermnão teve efeito.

Edit 2: Como mencionado nos comentários, eu tentei correr whereis ls, o que fornece a localização razoável que você esperaria encontrar ls- ou seja bin/ls.

Editar 3: Livre-se das imagens do terminal, troquei-as por código formatado corretamente, de acordo com este meta post .

Editar 4: adicionadas aspas "$dir"para evitar problemas com espaços.

t0mgs
fonte
Por favor, lembre-se de citar o seu variável, assim: ls -l "$dir". Sem isso, se o nome da pasta contiver um espaço, você obterá um resultado sem sentido.
Paddy Landau
@PaddyLandau você está certo. Editou isso.
precisa saber é

Respostas:

30

Ordem de classificação é definido pelas variáveis de região LC_ALL, LC_COLLATEe LANG(nesta ordem, sendo o primeiro o mais forte). Essas também são algumas das poucas variáveis ​​que geralmente podem ser definidas pelo cliente ssh. Verifique e compare essas variáveis. Você pode configurá-los para um valor bem definido no servidor (por exemplo, in .bash_profile) ou garantir que seus clientes ssh definam o mesmo valor consistente.

Egmont
fonte
4

O que acabou por funcionar foi a subseção "Interromper o encaminhamento da localidade do cliente" nesta resposta . Apenas comente a SendEnv LANG LC_*linha abaixo Hostno arquivo local /etc/ssh/ssh_config . Algumas explicações sobre o que faz podem ser encontradas aqui .

t0mgs
fonte