[xxx]$ mkdir dir{1..10}
[xxx]$ ls
dir1 dir10 dir2 dir3 dir4 dir5 dir6 dir7 dir8 dir9
当我创建 10 个这样的目录时,为什么 dir10 出现在 dir1 之后?不是应该是最后一个目录吗?
另外,如果我尝试以下命令:
[xxx]$ mkdir -v dir{1..10}
mkdir: created directory 'dir1'
mkdir: created directory 'dir2'
mkdir: created directory 'dir3'
mkdir: created directory 'dir4'
mkdir: created directory 'dir5'
mkdir: created directory 'dir6'
mkdir: created directory 'dir7'
mkdir: created directory 'dir8'
mkdir: created directory 'dir9'
mkdir: created directory 'dir10'
[xxx]$ ls
dir1 dir10 dir2 dir3 dir4 dir5 dir6 dir7 dir8 dir9
看起来现在目录是按正确的顺序创建的,但当我列出它们时,目录 10 似乎又排在第二位。
如何使目录 10 出现在目录 9 之后?有什么方法可以对这些目录进行排序吗?
答案1
因为ls
按字母顺序对文件进行排序。ls -v
如果您希望文件按数字顺序排序,您可以使用(在 Linux 中)列出文件
-v 文本中(版本)数字的自然排序