Em que ordem um arquivo FOR IN do bash seleciona arquivos em uma pasta?

2

Digamos que eu tenha um loop abaixo para in:

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

Agora, digamos que eu tenha 50 arquivos dentro de / apps / textfiles /

Em que ordem os arquivos serão selecionados?

    
por Koshur 13.04.2017 / 17:27

1 resposta

4

A expansão do nome de arquivo no Bash está classificando alfabeticamente .

no manual de bash:

Bash scans each word for the characters ‘*’, ‘?’, and ‘[’. If one of these characters appears, then the word is regarded as a pattern, and replaced with an alphabetically sorted list of filenames matching the pattern [...].

Não faz diferença aqui que o seu contexto globbing faça parte do loop for .

Note que a ordenação em ordem alfabética ainda obedece à ordem de agrupamento definida pelo arquivo LC_COLLATE variável:

LC_COLLATE

This variable determines the collation order used when sorting the results of filename expansion, and determines the behavior of range expressions, equivalence classes, and collating sequences within filename expansion and pattern matching (see Filename Expansion).

    
por 13.04.2017 / 17:31