4096在ls -l
的輸出中意味着什麼?運行ls -l時,爲什麼目錄上的文件大小不符合du的輸出?
[[email protected] nutch-0.9]# du -csh resume.new/
2.3G resume.new/
[[email protected] nutch-0.9]# ls -l
total 55132
drwxr-xr-x 7 root root 4096 Jun 18 03:19 resume.new
4096在ls -l
的輸出中意味着什麼?運行ls -l時,爲什麼目錄上的文件大小不符合du的輸出?
[[email protected] nutch-0.9]# du -csh resume.new/
2.3G resume.new/
[[email protected] nutch-0.9]# ls -l
total 55132
drwxr-xr-x 7 root root 4096 Jun 18 03:19 resume.new
該目錄佔用了4096字節的磁盤空間(不包括其內容)。
我也一直在想。因此,搜索後,我遇到了:
「因此,有必要存儲有關文件(包括包含在該 目錄 文件名)的 元數據的大小的文件/ 子目錄的數目。在給定時間可能 不直接映射到報道, 因爲一旦分配的大小,空間是如果文件的數量變化。 此行爲使大多數 用例感(其中磁盤空間是便宜, 而不是 釋放一旦目錄中有很多 文件,它可能會有 他們再次在未來),並幫助減少碎片。「
參考:http://www.linuxquestions.org/questions/showthread.php?p=2978839#post2978839
目錄就像與<名稱的文件,索引節點>元組,並專門由文件系統處理。由ls報告的大小是這個「文件」的大小。 Check this answer in Server Fault瞭解如何在引擎蓋下目錄。
因此,4096字節很可能意味着文件系統塊大小爲4096,而該目錄當前正在使用單個塊來存儲此名稱和inode表。
4096,在你的例子中,是目錄本身使用的字節數。換句話說,這是存儲目錄中包含的項目列表所需的空間。正如問題標題所示,它是而不是,這是目錄中存儲的所有項目的空間總和。
你沒有說你正在使用什麼系統,但是在許多UNIX/Linux文件系統中,存儲分配的最小單位是4K,這就是爲什麼大小顯示爲4096.兩個項目的目錄條目,加上「。」和「..」,應占用相當少的空間。
我發現這個http://serverfault.com/questions/294301/monotonic-growth-of-linux-directory-size-block-count與這個問題高度相關。 – tacaswell 2013-02-06 06:42:08