我正在使用 Windows 终端通过 SSH 连接到 Ubuntu 虚拟机。当我发出ls
命令时,输出是一列,类似于ls -al
但没有额外的信息。我希望输出以通常的默认格式显示,其中目录和文件在终端中水平显示。
我查看了我的~/.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