Considere la siguiente estructura de directorios, impresa en la pantalla usando ls -l "$dir"
( $dir
es una variable bash que representa una carpeta en el mismo servidor, unos niveles más arriba), en un servidor remoto de Ubuntu (más 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
Esto viene de un MacBook, y usa el terminal incorporado y la instalación ssh
inmediata de (OS X Versión 10.13.3, como me dice el terminal).
Considere, en comparación, el mismo servidor al que se accede desde una máquina Windows que ejecuta PuTTy versión 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 la clasificación diferente de los primeros 6 archivos en cada imagen.
Teniendo en cuenta que los comandos se ejecutan en el servidor y no en las computadoras cliente, no se esperaría ninguna diferencia entre las dos salidas. Entonces, ¿por qué no son idénticos?
Edición 1: como se menciona en los comentarios, lo he verificado y el terminal de Mac está configurado xterm-256color
mientras que el de Windows está configurado xterm
. Un cambio rápido de la configuración de la Mac xterm
no tuvo efecto.
Edición 2: como se menciona en los comentarios, he intentado ejecutar whereis ls
, lo que proporciona la ubicación razonable que esperarías encontrar ls
, es decir bin/ls
.
Edición 3: Eliminé las imágenes del terminal, las cambié por un código con el formato adecuado según esta meta publicación .
Edición 4: se agregaron citas "$dir"
para evitar problemas con los espacios.
ls -l "$dir"
. Sin esto, si el nombre de la carpeta contuviera un espacio, obtendría un resultado sin sentido.Respuestas:
Orden de clasificación se define por las variables de entorno local
LC_ALL
,LC_COLLATE
yLANG
(en este orden, siendo el primero el más fuerte). Estas son también algunas de las pocas variables que el cliente ssh puede configurar típicamente. Verifique y compare estas variables. Es posible que desee establecerlos en un valor bien definido en el servidor (por ejemplo, en.bash_profile
), o asegurarse de que sus clientes ssh establezcan el mismo valor consistente.fuente
Lo que finalmente funcionó fue la subsección "Detener reenvío de configuración regional desde el cliente" en esta respuesta . Simplemente comente la
SendEnv LANG LC_*
línea debajoHost
del archivo local/etc/ssh/ssh_config
. Puede encontrar alguna explicación sobre lo que hace aquí .fuente