Рассмотрим следующую структуру каталогов, выведенную на экран с помощью 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, как мне говорит терминал).
Для сравнения рассмотрим тот же сервер, к которому обращался компьютер Windows с версией PuTTy 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
Обратите внимание на различную сортировку первых 6 файлов на каждом изображении.
Учитывая, что команды выполняются на сервере, а не на клиентских компьютерах, не следует ожидать разницы между двумя выходными данными. Почему же они не идентичны?
Изменить 1: Как уже упоминалось в комментариях, я проверил, и терминал Mac установлен в xterm-256color
то время как Windows установлен в xterm
. Быстрое изменение настроек Mac на xterm
ничего не дало.
Редактирование 2: Как уже упоминалось в комментариях, я попытался запустить whereis ls
, что дает разумное расположение можно было бы ожидать , чтобы найти ls
- то есть bin/ls
.
Редактировать 3: Избавился от изображений терминала, обменял их на правильно отформатированный код в соответствии с этим постом .
Редактировать 4: Добавлены кавычки, "$dir"
чтобы избежать проблем с пробелами.
ls -l "$dir"
. Без этого, если имя папки будет содержать пробел, вы получите бессмысленный результат.Ответы:
Порядок сортировки определяется локализаций переменных
LC_ALL
,LC_COLLATE
иLANG
(в указанном порядке, первый из которых самый сильный). Это также некоторые из немногих переменных, которые обычно могут быть установлены клиентом ssh. Проверьте и сравните эти переменные. Возможно, вы захотите установить для них строго определенное значение на сервере (например, в.bash_profile
) или убедиться, что ваши клиенты ssh установили одно и то же непротиворечивое значение.источник
В конечном итоге сработал раздел «Остановка переадресации с клиента» в этом ответе . Просто закомментируйте
SendEnv LANG LC_*
строкуHost
в локальном/etc/ssh/ssh_config
файле. Некоторое объяснение того, что он делает, можно найти здесь .источник