bash FOR IN 循环按什么顺序获取文件夹中的文件?

bash FOR IN 循环按什么顺序获取文件夹中的文件?

假设我有一个下面的 for in 循环:

for i in /apps/textfiles/*.txt
do
do something
done

现在假设我里面有 50 个文件/应用程序/文本文件/

将以什么顺序选择文件?

答案1

Bash 中的文件名扩展是排序按字母顺序

来自 Bash 手册:

Bash 扫描每个单词中的字符“ *”、“ ?”和“ [”。如果出现这些字符之一,则该单词被视为一种模式,并替换为与模式匹配的按字母顺序排序的文件名列表 [...]。

通配上下文是循环的一部分,这并没有什么区别for

注意按字母顺序排列的排序仍然遵循由LC_COLLATE多变的:

LC_COLLATE

此变量确定对文件名扩展结果进行排序时使用的排序规则,并确定范围表达式、等价类以及文件名扩展和模式匹配中的排序序列的行为(请参阅文件名扩展)。

相关内容