當使用 ls 而不排序時,什麼決定了檔案的排序方式?

當使用 ls 而不排序時,什麼決定了檔案的排序方式?

ls與flag 一起使用時的順序-U與我在 C 中使用 dirent.h 庫並在循環中顯示文件名時得到的順序相同。當我顯示結構體d_off成員時dirent,數字似乎按升序排列。

d_off文件順序的原因是什麼?我看到它被描述為文件偏移量,但我不確定這意味著什麼。

先致謝

答案1

man 3 readdir


   d_off 中傳回的值與目錄流中的目前位置呼叫telldir(3) 傳回的值相同。請注意,儘管有其類型和名稱,d_off 欄位很少是現代檔案系統上的任何類型的目錄偏移量。應用程式應將此欄位視為不透明值,對其內容不做任何假設;另請參見telldir(3)。

換句話說,d_off以及順序是同一件事;它是檔案系統為該目錄傳回的目錄條目的編號。

因此,順序是由檔案系統本身定義的 - 這可能很簡單(例如,在 FAT12 目錄中)或非常複雜(例如,某些複雜檔案系統上的 OverlayFS)。

相關內容