Risultati diversi per ls quando si accede a Ubuntu tramite SSH da diversi client (Windows-PuTTy, Mac-Terminal)


15

Considera la seguente struttura di directory, stampata sullo schermo usando ls -l "$dir"( $dirè una variabile bash che sta per alcune cartelle sullo stesso server, alcuni livelli sopra), su un server Ubuntu remoto (più precisamente, Ubuntu 16.04.4 LTS (GNU / Linux 4.4 .0-116-generico 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

Questo proviene da un MacBook e utilizza il terminale integrato e l'installazione sshimmediata di (OS X versione 10.13.3, come mi dice il terminale).

Si consideri, in confronto, lo stesso server a cui si accede da un computer Windows che esegue PuTTy versione 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

Notare il diverso ordinamento dei primi 6 file in ogni immagine.

Considerando che i comandi sono in esecuzione sul server e non sui computer client, non ci si aspetterebbe alcuna differenza tra i due output. Qual è il motivo per cui non sono identici, allora?

Modifica 1: Come menzionato nei commenti, ho controllato e il terminale del Mac è impostato su xterm-256colormentre quello di Windows è impostato su xterm. Una rapida modifica delle impostazioni del Mac xtermnon ha avuto alcun effetto.

Modifica 2: Come menzionato nei commenti, ho provato a correre whereis ls, il che dà la posizione ragionevole che ti aspetteresti di trovare ls, ad es bin/ls.

Modifica 3: sbarazzarsi delle immagini del terminale, scambiarle con codice correttamente formattato secondo questo meta post .

Modifica 4: aggiunte virgolette "$dir"per evitare problemi con gli spazi.


Ricordatevi di citare la variabile, in tal modo: ls -l "$dir". Senza questo, se il nome della cartella dovesse contenere uno spazio, otterresti un risultato senza senso.
Paddy Landau,

@PaddyLandau hai ragione. Modificato quello.
t0mgs

Risposte:


30

Ordinamento è definito dalle variabili di localizzazione LC_ALL, LC_COLLATEe LANG(in questo ordine, il primo è il più forte). Queste sono anche alcune delle poche variabili che in genere possono essere impostate dal client ssh. Controlla e confronta queste variabili. Si consiglia di impostarli su un valore ben definito sul server (ad es. In .bash_profile) o assicurarsi che i client SSH impostino lo stesso valore coerente.


4

Ciò che alla fine ha funzionato è stata la sottosezione "Stop Forwarding Locale From The Client" in questa risposta . Basta commentare la SendEnv LANG LC_*riga sotto Hostnel file locale /etc/ssh/ssh_config . Alcune spiegazioni su cosa fa possono essere trovate qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.