Hasil berbeda untuk ls ketika mengakses Ubuntu melalui SSH dari klien yang berbeda (Windows-PuTTy, Mac-Terminal)

15

Pertimbangkan struktur direktori berikut, dicetak ke layar menggunakan ls -l "$dir"( $diradalah variabel bash berdiri untuk beberapa folder pada server yang sama, beberapa level di atas), pada server remote Ubuntu (lebih tepatnya, Ubuntu 16.04.4 LTS (GNU / Linux 4.4 .0-116-generik 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

Ini berasal dari MacBook, dan menggunakan terminal built-in dan instalasi out-of-the-box dari ssh(OS X Versi 10.13.3, seperti terminal memberitahu saya).

Pertimbangkan, sebagai perbandingan, server yang sama diakses dari mesin Windows yang menjalankan PutTy release 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

Perhatikan penyortiran yang berbeda dari 6 file pertama di setiap gambar.

Mempertimbangkan bahwa perintah berjalan di server, dan bukan pada komputer klien, orang akan mengharapkan tidak ada perbedaan antara dua output. Apa alasan mereka tidak identik?

Sunting 1: Seperti yang disebutkan dalam komentar, saya telah memeriksa dan terminal Mac diatur ke xterm-256colorsedangkan yang Windows diatur ke xterm. Perubahan cepat pengaturan Mac menjadi xtermtidak berpengaruh.

Sunting 2: Seperti yang disebutkan dalam komentar, saya sudah mencoba menjalankan whereis ls, yang memberikan lokasi wajar yang Anda harapkan ls- yaitu bin/ls.

Sunting 3: Singkirkan gambar terminal, perdagangkan dengan kode yang diformat dengan benar sesuai meta post ini .

Sunting 4: Menambahkan kutipan sekitar "$dir"untuk mencegah masalah dengan spasi.

t0mgs
sumber
Harap ingat untuk mengutip variabel Anda, sehingga: ls -l "$dir". Tanpa ini, jika nama folder mengandung spasi, Anda akan mendapatkan hasil yang tidak masuk akal.
Paddy Landau
@ PaddyLandau Anda benar. Diedit itu.
t0mgs

Jawaban:

30

Urutan pengurutan ditentukan oleh variabel lokal LC_ALL, LC_COLLATEdan LANG(dalam urutan ini, yang pertama adalah yang terkuat). Ini juga beberapa dari beberapa variabel yang biasanya dapat diatur oleh klien ssh. Periksa dan bandingkan variabel-variabel ini. Anda mungkin ingin mengaturnya ke nilai yang terdefinisi dengan baik di server (misalnya dalam .bash_profile), atau pastikan bahwa klien ssh Anda menetapkan nilai konsisten yang sama.

egmont
sumber
4

Apa yang akhirnya berhasil adalah sub-bagian "Stop Forwarding Locale From The Client" dalam jawaban ini . Komentari SendEnv LANG LC_*baris Hostdi bawah di file lokal /etc/ssh/ssh_config . Beberapa penjelasan tentang apa yang dilakukannya dapat ditemukan di sini .

t0mgs
sumber