为什么 mkdir dir{1..10} 在 dir2 之前创建 dir10?

为什么 mkdir dir{1..10} 在 dir2 之前创建 dir10?
[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 文本中(版本)数字的自然排序

相关内容