Filesystems

為什麼 。和 .. 的文件大小分別為 4 kB 和 12 kB?

  • March 17, 2013

ls -al所示,例如:

drwxr-xr-x  9 jb jb 4.0K Mar  8 18:05 ./
drwx------ 49 jb jb 12K Mar 17 14:15 ../

我假設這是儲存 inode 的元數據所需的最小空間量,例如返回的stat,但我不完全確定。

.( dotfor d, dfor directory) 是指向其包含目錄的硬連結。你會注意到:

ls -di . "$PWD"

返回相同的 inode 編號。它的大小是它需要(或可能曾經需要)儲存其內容的字節數,即它引用的文件列表(連結到它,順便包括...

..d目錄的d目錄)是到父目錄的硬連結,這是唯一引用該目錄的目錄(目錄只能有一個連結,如果我們不考慮...條目)。

所以:

ls -di -- .. "$(dirname -- "$(pwd -P)")"

也將返回相同的 inode 編號。

所以在你的情況下..大於.. 它可能包含更多條目(或者在那些分配給目錄的空間從未回收的文件系統上,..曾經有那麼多條目需要 12kB 來儲存它們,而.從來不需要超過 4kB)。

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