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

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

考虑以下目录结构,使用ls -l "$dir"$dir是一个 bash 变量,代表同一服务器上上几个级别的某个文件夹)在远程 Ubuntu 服务器(更准确地说,Ubuntu 16.04.4 LTS(GNU/Linux 4.4.0-116-generic 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,使用内置终端和开箱即用的安装ssh(终端告诉我的是 OS 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:删除了终端图像,将其替换为格式正确的代码这篇元帖子

编辑4:添加引号"$dir"以避免出现空格问题。

答案1

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

答案2

最终起作用的是“停止从客户端转发语言环境”子部分这个答案。只需注释掉下面SendEnv LANG LC_*的行即可Host当地的 /etc/ssh/ssh_config文件。可以找到一些关于它的作用的解释这里

相关内容