今天在终端下使用 ls 命令的时候,发现没办法直接满足按照阿拉伯数字顺序排列的需求。

比如说有如下几个文件:

1_apple.txt
12_banana.txt
3_orange.txt
31_mango.txt

这就是 ls 命令默认的排序方式。 而我需要的却是:

1_apple.txt
3_orange.txt
12_banana.txt
31_mango.txt

STFW 发现可以通过管道符和 sort 命令配合来实现。

ls | sort -k1 -n

其中,-k1 表示按照第一个区域进行排序,-n 表示按照数值排序。 只用 ls 命令的时候,-k 参数可以省略,但如果使用 ls -al 命令的话,需要排序的就是第九个区域,就应该是 -k9 了。 另外,-t 参数可以指定用来分隔区域的字符。当数字在文件名后面作为版本号的时候,可能会用上这个参数。