Filesystems目錄中文件的“目錄順序”是什麼(由
目錄中文件的“目錄順序”是什麼(由ls -U
使用)?
根據 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+ 樹中的一些條目,在文件系統中不可見,因此
ls
Reiserfs 文件系統中的目錄的明文是按詞法順序排列的。