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

この変数は、ファイル名拡張の結果をソートするときに使用する照合順序を決定し、ファイル名拡張とパターン マッチング内の範囲式、同値クラス、および照合シーケンスの動作を決定します (ファイル名拡張を参照)。

関連情報