Directory

為什麼這個空目錄是 3.5MB?

  • July 1, 2020

我剛剛讀過這個問題:目錄的大小在“ls -l”命令的輸出中意味著什麼?

…這並不能完全回答我的問題。基本上,我將文件移動到 NAS 上。我已經移動的文件夾完全是空的,沒有隱藏文件或任何東西,但du仍然報告它們的大小為 3.5MB。誠然,它們以前包含大量文件,文件名很長。

這個大小僅僅是因為該目錄中文件的數量和名稱長度嗎?既然文件夾為空(ext4 文件系統),為什麼大小沒有減少?

當您從一個目錄中刪除所有文件時,對於大多數文件系統,該目錄的大小保持不變。

如果目錄為空,

rmdir ./directory_name; mkdir ./directory

生成的新目錄會更小。但是隨著文件的添加,它會變得更大。不要擔心目錄文件大小與單個目錄中的文件數量一樣多。單個目錄中的大量文件會對文件查找性能產生負面影響。即使有足夠的 inode 記憶體。

在 Solaris 中,在 ufs 中,在影響性能之前,目錄中有多少文件會有所不同。我在幾個系統上發現一個目錄將包含成千上萬個小文件。目錄的大小不是那麼大,但文件的數量使得在目錄中無法執行任何操作。您不能只 rm * 文件,因為它會導致系統鎖定。我發現刪除它們的唯一方法是生成一個列表(ls the-directory >> file.list),然後生成一個簡短的 for-do-done 一行腳本並將它們一一刪除。這需要很長時間,但這是在不鎖定係統的情況下刪除它們的唯一方法。目錄為空後,如果仍然需要它,請刪除並重新創建目錄,以便列出的塊大小與其中的內容相稱。之後,

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