Directory
ls 報告的目錄大小
我了解報告的大小
ls
與目錄中的 inode 數量相對應,而不是它們的實際大小。我注意到在使用
ls
. 以下是如何快速重現它:首先創建空目錄,報告的大小
ls
為4096(如預期)mkdir test ll -d test/ drwx------ 2 root root 4,096 2015-Dec-29 22:22:36 test/
在裡面創建 10,000 個文件。報告的大小現在是 167,936
touch test/{1..9999} ll -d test/ drwx------ 2 root root 167,936 2015-Dec-29 22:23:24 test/
刪除所有文件。大小應減小回 4096
rm test/* ll -d test/ drwx------ 2 root root 167,936 2015-Dec-29 22:23:59 test/
但該大小仍報告為 167,936。
為什麼?
有人可以解釋一下嗎?
通常,目錄文件不會被清理——它們的空間通常足夠小(與其內容相比),這樣做是無效的(特別是當它們可能再次增長時)。找到一個權威的答案可能很難……論壇評論很容易:
- 縮小/重置目錄大小?
- Linux 目錄不會自動收縮也提供了一些見解。
- 為什麼刪除條目後具有大量條目的目錄不會縮小大小?提供了特定於 Linux 的權威答案