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

이 변수는 파일 이름 확장 결과를 정렬할 때 사용되는 조합 순서를 결정하고, 파일 이름 확장 및 패턴 일치 내에서 범위 표현식, 등가 클래스 및 조합 시퀀스의 동작을 결정합니다(파일 이름 확장 참조).

관련 정보