Pertimbangkan struktur direktori berikut, dicetak ke layar menggunakan ls -l "$dir"
( $dir
adalah 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-256color
sedangkan yang Windows diatur ke xterm
. Perubahan cepat pengaturan Mac menjadi xterm
tidak 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.
ls -l "$dir"
. Tanpa ini, jika nama folder mengandung spasi, Anda akan mendapatkan hasil yang tidak masuk akal.Jawaban:
Urutan pengurutan ditentukan oleh variabel lokal
LC_ALL
,LC_COLLATE
danLANG
(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.sumber
Apa yang akhirnya berhasil adalah sub-bagian "Stop Forwarding Locale From The Client" dalam jawaban ini . Komentari
SendEnv LANG LC_*
barisHost
di bawah di file lokal/etc/ssh/ssh_config
. Beberapa penjelasan tentang apa yang dilakukannya dapat ditemukan di sini .sumber