考虑以下目录结构,使用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 客户端设置相同的一致值。