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

此變數決定對檔案名稱擴充結果進行排序時所使用的排序規則,並確定範圍表達式、等價類別以及檔案名稱擴充和模式匹配中的排序序列的行為(請參閱檔案名稱擴充)。

相關內容