`ls -l` 是否不直观地对文件进行排序?

pol*_*mon 0 ls sort locale

考虑到以下输出,让我解释一下ls -l met*

% ll met*
-rw-rw-r--. 1 polemon polemon  20K 09-20 04:24 met_gs.png
-rw-rw-r--. 1 polemon polemon  20K 09-20 04:26 met_idx.png
-rw-rw-r--. 1 polemon polemon 3.9K 09-20 04:28 met_mon.png
-rw-rw-r--. 1 polemon polemon  35K 09-20 04:23 met.png
Run Code Online (Sandbox Code Playgroud)

如您所见,我有四个文件,都以单词 开头met,然后是后缀。

正如您所看到的,它们中最短的met.png显示在最后一行。

我认为发生这种情况是因为按字典顺序,'_' 出现在 '.' 之前。然而,这仍然感觉不对。有没有办法ls以更直观的字典顺序制作这样的打印文件列表,如下所示:

met.png
met_gs.png
met_idx.png
met_mon.png
Run Code Online (Sandbox Code Playgroud)

?

我的版本ls是:»ls (GNU coreutils) 8.24«

我的语言环境是 en_US.utf8

cut*_*tjm 5

您可以ls -lv为此使用,-l长列表在哪里并且-v是自然排序

root@vps60508:~# ls -l
total 0
-rw-r--r-- 1 root root 0 Sep 19 23:00 met_gs.png
-rw-r--r-- 1 root root 0 Sep 19 23:01 met_idx.png
-rw-r--r-- 1 root root 0 Sep 19 23:01 met_mon.png
-rw-r--r-- 1 root root 0 Sep 19 23:01 met.png
root@vps60508:~# ls -lv
total 0
-rw-r--r-- 1 root root 0 Sep 19 23:01 met.png
-rw-r--r-- 1 root root 0 Sep 19 23:00 met_gs.png
-rw-r--r-- 1 root root 0 Sep 19 23:01 met_idx.png
-rw-r--r-- 1 root root 0 Sep 19 23:01 met_mon.png
Run Code Online (Sandbox Code Playgroud)