为什么在忽略终端中文件名长度的情况下按字母顺序列出文件?
也许我不应该说“忽略”文件名的长度,而是为什么在终端和GUI中显示文件有区别。
这当然是一个微不足道的问题,但是一段时间以来,我对此一直感到有些好奇。
在终端中,ls
使用该-l
选项(未指定其他排序选项)的vanilla命令以字母顺序列出文件,从列表的顶行开始向下移动。说我有一个目录,里面充满了使用以下文件创建的文件:
$ touch file1{1..16}
ls
在同一目录中将显示以下内容:
-rw-r--r--. 1 user user 0 May 24 11:14 file1
-rw-r--r--. 1 user user 0 May 24 11:14 file10
-rw-r--r--. 1 user user 0 May 24 11:14 file11
-rw-r--r--. 1 user user 0 May 24 11:14 file12
-rw-r--r--. 1 user user 0 May 24 11:14 file13
-rw-r--r--. 1 user user 0 May 24 11:14 file14
-rw-r--r--. 1 user user 0 May 24 11:14 file15
-rw-r--r--. 1 user user 0 May 24 11:14 file16
-rw-r--r--. 1 user user 0 May 24 11:14 file2
-rw-r--r--. 1 user user 0 May 24 11:14 file3
-rw-r--r--. 1 user user 0 May 24 11:14 file4
-rw-r--r--. 1 user user 0 May 24 11:14 file5
-rw-r--r--. 1 user user 0 May 24 11:14 file6
-rw-r--r--. 1 user user 0 May 24 11:14 file7
-rw-r--r--. 1 user user 0 May 24 11:14 file8
-rw-r--r--. 1 user user 0 May 24 11:14 file9
我的问题是,为什么在终端中“ file10”以这种方式跟随“ file1”?在GUI环境中按名称或类型排序的详细信息或列表视图中查看文件时,这些相同的文件将列为“ file1”,“ file2”,“ file3”等。
GUI中的文件列表似乎优先按文件名长度的字母顺序排列,列出文件的长度从最小到最大。这样对吗?还有其他技术原因吗?就是ls
命令“的它的方式走出去”命令文件它,或同样地具有GUI的方式吗?
默认顺序为ls
字母顺序。在这种情况下,数字不只是数字,而不仅仅是字符。因此,file1
名称比短file10
,但名称相同,因此在列表中位于该名称的前面。
如果您想使用自然版本的订单,可以尝试ls -l --sort=version
(或ls -lv
)
-rw-r--r--+ 1 roaima 0 May 24 18:50 file0
-rw-r--r--+ 1 roaima 0 May 24 18:50 file1
-rw-r--r--+ 1 roaima 0 May 24 18:50 file2
...
-rw-r--r--+ 1 roaima 0 May 24 18:50 file9
-rw-r--r--+ 1 roaima 0 May 24 18:50 file10
-rw-r--r--+ 1 roaima 0 May 24 18:50 file11
-rw-r--r--+ 1 roaima 0 May 24 18:50 file12
-rw-r--r--+ 1 roaima 0 May 24 18:50 file13
在中,还有许多其他排序选项可用ls
。man ls
有关详细信息,请参见。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句