在for循环中对目录中的子目录进行排序

时间:2017-04-26 18:30:48

标签: bash scripting command

假设你有

for subdir in *

并且您希望父元素中的子目录(名称1,2,...,10,11 ......)按人类数字顺序读取,即1,2,3等,而不是机器中的子目录,即1,10等。你是如何表现的?

1 个答案:

答案 0 :(得分:1)

您可以使用-n--numeric-sort)选项sort按数字顺序排序:

~/tmp for f in $(ls | sort -n); do echo $f; done
1
2
3
4
5
6
7
8
9
10

~/tmp for f in $(ls); do echo $f; done
1
10
2
3
4
5
6
7
8
9

如果您不需要进行任何操作,只需按顺序列出目录:

ls | sort -n 
相关问题