答案1
这看起来像“(版本)号的自然排序”ls -v
正如和(GNU)所做的那样sort -V
。这里的结果看起来有点奇怪,但重点是对1.1
< 1.2
< 1.11
<进行排序1.12
。也就是说,将每个数字序列视为数字而不是单个字符。这自然意味着前导零并不重要。
$ touch '00 - A' '000 - B' '0 - C'
$ /bin/ls -v1
00 - A
000 - B
0 - C
如果缺少这一点,区域设置当然也会影响排序:
$ LC_ALL=C /bin/ls -1
0 - C
00 - A
000 - B
$ LC_ALL=en_US.UTF-8 /bin/ls -1
000 - B
00 - A
0 - C
您需要检查您正在使用的程序是否有任何文档或设置来修改其排序方式。