¿En qué orden un bucle bash FOR IN recoge archivos en una carpeta?

¿En qué orden un bucle bash FOR IN recoge archivos en una carpeta?

Digamos que tengo un bucle for in a continuación:

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

Ahora digamos que tengo 50 archivos dentro./aplicaciones/archivos de texto/

¿En qué orden se seleccionarán los archivos?

Respuesta1

La expansión del nombre de archivo en Bash se está ordenandoalfabéticamente.

Del manual de Bash:

Bash escanea cada palabra en busca de los caracteres ' *', ' ?' y ' ['. Si aparece uno de estos caracteres, entonces la palabra se considera como un patrón y se reemplaza con una lista ordenada alfabéticamente de nombres de archivos que coinciden con el patrón [...].

Aquí no importa que su contexto global sea parte del forciclo.

Tenga en cuenta quealfabéticoLa clasificación todavía obedece al orden de clasificación definido por elLC_COLLATEvariable:

LC_COLLATE

Esta variable determina el orden de clasificación utilizado al ordenar los resultados de la expansión de nombres de archivos y determina el comportamiento de las expresiones de rango, clases de equivalencia y secuencias de clasificación dentro de la expansión de nombres de archivos y la coincidencia de patrones (consulte Expansión de nombres de archivos).

información relacionada