从不同的客户端(Windows-PuTTy,Mac-Terminal)通过SSH访问Ubuntu时,ls的结果不同


15

考虑下面的目录结构中,打印到使用屏幕ls -l "$dir"$dir是一个bash可变静置一段夹在同一服务器上,几级上),一个远程Ubuntu服务器上(更准确地说,Ubuntu的16.04.4 LTS(GNU / Linux的4.4 .0-116-通用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

它来自MacBook,并使用内置终端和现成的sshOS X版本10.13.3,如终端所告诉的那样。

相比之下,请考虑从运行PuTTy版本0.70的Windows计算机访问的同一服务器

-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

请注意,每个图像中前6个文件的排序不同。

考虑到命令是在服务器上运行的,而不是在客户端计算机上运行的,因此可以期望这两个输出之间没有差异。那么,为什么它们不相同是什么原因呢?

编辑1:如评论中所述,我已经检查过,Mac的终端设置为,xterm-256color而Windows 的终端设置为xterm。Mac的设置快速更改为xterm无效。

编辑2:如评论中所述,我已经尝试过运行whereis ls,它给出了您期望找到的合理位置ls-即bin/ls

编辑3:删除终端图像,按照此meta post的要求将它们换成格式正确的代码。

编辑4:添加了引号,"$dir"以防止空格问题。


请记得注明您的变量,即:ls -l "$dir"。否则,如果文件夹名称包含空格,则会得到无用的结果。
帕迪·兰道

@PaddyLandau你是对的。编辑。
t0mgs

Answers:


30

排序顺序由语言环境变量的定义LC_ALLLC_COLLATELANG(在此顺序中,第一是最强)。这些也是ssh客户端通常可以设置的一些变量。检查并比较这些变量。您可能需要在服务器上将它们设置为明确定义的值(例如,在中.bash_profile),或者确保ssh客户端设置相同的一致值。


4

最终有效的方法是此答案中的 “从客户端停止转发语言环境”小节。只需将本地文件SendEnv LANG LC_*下的行注释掉即可。关于它的作用的一些解释可以在这里找到。Host /etc/ssh/ssh_config

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.