按带有 bash 通配符的数字排序

Order by numbers with bash wildcards

我有一个目录包含

frame0.png frame1.png frame2.png ... frame20.png

我想使用通配符,以便 ls -l 显示按编号排序的文件。我试过了

ls -l frame?.png frame??.png

因为我认为它会首先搜索只有一个数字的项目,对它们进行排序,然后对两个数字执行相同的操作但是,输出是

frame0.png frame10.png frame11.png ... frame1.png frame20.png frame2.png ... frame9.png

我怎样才能避免 bash 那样命令他们?

如果您有 gnu 实用程序,则使用 -v 选项进行自然排序:

ls -lv frame*.png

如果你没有 gnu ls 那么试试这个 find + sort:

find . -maxdepth 1 -name 'frame*.png' | sort -V