異なるクライアント(Windows-PuTTy、Mac-Terminal)からSSHを介してUbuntuにアクセスした場合のlsの異なる結果


15

使用して画面に印刷された、次のディレクトリ構造を考えてみましょうls -l "$dir"$dirより正確には(リモートのUbuntuサーバー上で、いくつかのレベルアップ、同じサーバー上のいくつかのフォルダ放置bashの変数である)は、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、ターミナルが私に言うように)のすぐに使えるインストールを使用しています。

それと比較して、PuTTyリリース0.70を実行しているWindowsマシンからアクセスする同じサーバーを検討してください。

-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つのファイルのソートが異なることに注意してください。

コマンドがクライアントコンピューター上ではなくサーバー上で実行されていることを考えると、2つの出力に違いはないはずです。それでは、それらが同一ではない理由は何ですか?

編集1:コメントで述べたように、私はチェックし、Macのターミナルはに設定されxterm-256color、Windows のターミナルはに設定されていますxterm。Macの設定をすばやく変更しxtermても効果はありませんでした。

編集2:コメントで述べたように、私は実行しようとしましたwhereis ls、それはあなたが見つけると期待される合理的な場所を与えますls-すなわちbin/ls

編集3:このメタ投稿に従って、端末イメージを取り除き、適切にフォーマットされたコードと交換しました。

編集4:"$dir"スペースの問題を防ぐために引用符を追加しました。


変数を引用することを忘れないでください:ls -l "$dir"。これがないと、フォルダー名にスペースが含まれる場合、ナンセンスな結果が得られます。
水田ランダウ

@PaddyLandauあなたは正しい。それを編集しました。
t0mgs

回答:


30

ソート順は、ロケール変数LC_ALLLC_COLLATEおよびLANG(この順序で、最初が最も強い)によって定義されます。これらは、通常sshクライアントによって設定できるいくつかの変数の一部です。これらの変数を確認して比較します。サーバー上で明確に定義された値に設定する(例.bash_profile:)か、sshクライアントが同じ一貫した値を設定するようにしてください。


4

最終的には、この回答の「クライアントからのロケールの転送の停止」サブセクションが有効でした。ちょうどコメントアウトSendEnv LANG LC_*下の行Hostにあるローカル /etc/ssh/ssh_configファイル。それがすることについての説明はここで見つけることができます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.