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


15

Розглянемо наступну структуру каталогів, надруковану на екран за допомогою ls -l "$dir" ( $dirце базова змінна, яка стоїть для деякої папки на тому ж сервері, на кілька рівнів вгору), на віддаленому сервері 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". Без цього, якби назва папки містила пробіл, ви отримали б дурницький результат.
Падді Ландау

@PaddyLandau ви праві. Редагував це.
t0mgs

Відповіді:


30

Порядок сортування визначається локальними змінними LC_ALL, LC_COLLATEі LANG(у цьому порядку перший є найсильнішим). Це також деякі з декількох змінних, які зазвичай можна встановити ssh-клієнтом. Перевірте та порівняйте ці змінні. Ви можете встановити їх на чітко визначеному значенні на сервері (наприклад, в .bash_profile) або переконатися, що ваші ssh-клієнти встановлюють однакове постійне значення.


4

Зрештою, у цій відповіді працював підрозділ "Зупинити пересилання локальної інформації від клієнта" . Просто прокоментуйте SendEnv LANG LC_*рядок Hostу локальному /etc/ssh/ssh_config файлі. Деякі пояснення щодо того, що це робиться, можна знайти тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.