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.
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 for
ciclo.
Tenga en cuenta quealfabéticoLa clasificación todavía obedece al orden de clasificación definido por elLC_COLLATE
variable:
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).