"ls"コマンドは単一の列のみを表示します。

"ls"コマンドは単一の列のみを表示します。

私はWindowsターミナルを使用してSSH経由でUbuntu仮想マシンに接続しています。コマンドを実行すると、ls出力は追加情報に似ていますls -alが、追加情報はない1つの列です。ディレクトリとファイルが端末に水平に表示される一般的なデフォルト形式で出力を表示したいと思います。

私のファイルを見ましたが、これらの~/.bashrc基本的な動作を引き起こすものは何もありません。

なぜこれが起こるのか知っていますか?私が最後にログインしたとき(数ヶ月前)、期待どおりに機能しました。

答え1

質問に対する意見から影響を受けたディレクトリの名前が非常に長いと言われました。ユーティリティlsは、最も長いファイル名に対応できるように列の幅を調整します。ファイル名が長すぎる場合は、lsターミナルウィンドウの幅(またはCOLUMNS環境変数の値)に応じて、すべての項目を単一の列に表示するように選択する効果があります。

はい

短いファイル名:

$ touch {1..20}
$ ls
1       11      13      15      17      19      20      4       6       8
10      12      14      16      18      2       3       5       7       9

長い名前を追加すると拡張されます。みんなこの長さの名前を含む列:

$ touch longerfilename
$ ls
1               14              19              5               longerfilename
10              15              2               6
11              16              20              7
12              17              3               8
13              18              4               9

ファイル名が両方の列に比べて長すぎる場合、ls出力は単一の列に表示されます。ユーティリティは常に同じ幅の列を出力します。

$ touch really-really-really-long-name-of-a-file
$ ls
1
10
11
12
13
14
15
16
17
18
19
2
20
3
4
5
6
7
8
9
longerfilename
really-really-really-long-name-of-a-file

関連情報