让我解释一下考虑到以下输出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
如您所见,我有四个文件,全部以单词 开头met
,然后是后缀。
正如您所看到的,其中最短的met.png
显示在最后一行。
我认为发生这种情况是因为按字典顺序,“_”位于“.”之前。然而,这仍然感觉不对。有没有一种方法可以ls
以更直观的字典顺序制作这样的打印文件列表,如下所示:
met.png
met_gs.png
met_idx.png
met_mon.png
?
我的版本ls
是:»ls (GNU coreutils) 8.24«
我的区域设置是 en_US.utf8
答案1
你可以用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