Различные результаты для ls при доступе к Ubuntu через SSH с разных клиентов (Windows-PuTTy, Mac-Terminal)

15

Рассмотрим следующую структуру каталогов, выведенную на экран с помощью 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"чтобы избежать проблем с пробелами.

t0mgs
источник
Пожалуйста , не забудьте указать переменную, таким образом: ls -l "$dir". Без этого, если имя папки будет содержать пробел, вы получите бессмысленный результат.
Пэдди Ландау
@PaddyLandau ты прав. Отредактировал это.
t0mgs

Ответы:

30

Порядок сортировки определяется локализаций переменных LC_ALL, LC_COLLATEи LANG(в указанном порядке, первый из которых самый сильный). Это также некоторые из немногих переменных, которые обычно могут быть установлены клиентом ssh. Проверьте и сравните эти переменные. Возможно, вы захотите установить для них строго определенное значение на сервере (например, в .bash_profile) или убедиться, что ваши клиенты ssh установили одно и то же непротиворечивое значение.

Эгмонт
источник
4

В конечном итоге сработал раздел «Остановка переадресации с клиента» в этом ответе . Просто закомментируйте SendEnv LANG LC_*строку Hostв локальном /etc/ssh/ssh_config файле. Некоторое объяснение того, что он делает, можно найти здесь .

t0mgs
источник