Filesystems

目錄中文件的“目錄順序”是什麼(由ls -U使用)?

  • February 15, 2022

根據 ls 的手冊頁,ls -U意味著:

不排序;按目錄順序列出條目。

“目錄順序”是什麼意思,它是如何確定的?

以下測試(在 ext3 文件系統上執行)表明它不是創建文件的順序:

root@sv1010vm0007:/tmp# mkdir test
root@sv1010vm0007:/tmp# touch test/2
root@sv1010vm0007:/tmp# touch test/1
root@sv1010vm0007:/tmp# touch test/3
root@sv1010vm0007:/tmp# ls -U test
2  3  1

這取決於文件​​系統。對於某些文件系統(其中包括 ext3),目錄實際上是具有眾所周知格式的文件,並且在其權限或模式中設置了 ’d’ 位。在這種情況下,創建和刪除文件名長度的歷史可能很重要。核心將填寫目錄文件中的第一個條目,該條目有足夠的空間來保存新文件的名稱。有關更多詳細資訊,請參閱http://e2fsprogs.sourceforge.net/ext2intro.html,標題為“物理描述”的部分。

對於其他一些文件系統,其中包括 Reiserfs,目錄實際上只是 B+ 樹中的一些條目,在文件系統中不可見,因此lsReiserfs 文件系統中的目錄的明文是按詞法順序排列的。

引用自:https://unix.stackexchange.com/questions/13451