В каком порядке цикл FOR IN в bash выбирает файлы в папке?

В каком порядке цикл FOR IN в bash выбирает файлы в папке?

Допустим, у меня есть следующий цикл for in:

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

Теперь предположим, что у меня внутри 50 файлов./приложения/текстовые файлы/

В каком порядке будут выбираться файлы?

решение1

Расширение имени файла в Bash — это сортировкав алфавитном порядке.

Из руководства Bash:

Bash сканирует каждое слово на наличие символов ' *', ' ?' и ' ['. Если появляется один из этих символов, то слово рассматривается как шаблон и заменяется отсортированным по алфавиту списком имен файлов, соответствующих шаблону [...].

Здесь не имеет значения, является ли контекст глобализации частью цикла for.

Обратите внимание, чтоалфавитныйсортировка по-прежнему подчиняется порядку сопоставления, определенномуLC_COLLATEпеременная:

LC_COLLATE

Эта переменная определяет порядок сортировки, используемый при сортировке результатов расширения имени файла, а также определяет поведение выражений диапазона, классов эквивалентности и последовательностей сортировки в рамках расширения имени файла и сопоставления с образцом (см. Расширение имени файла).

Связанный контент