Size

文件夾大小 du, ls

  • December 7, 2018

有人可以解釋文件夾大小嗎?文件夾僅包含 1 個 360Gb 大小的文件。ls 和 du 顯示使用 440Gb

[root@liz DECSC]# ls -lha
total 440G
drwxrwxr-x  2 geo geo  4.0K Dec  6 19:56 .
drwxrwxr-x 14 geo geo  20K  Dec  6 19:39 ..
-rwxrwxrwx  1 geo geo  360G Apr  8 2018 vor_gainzp2.dat
[root@liz DECSC]# du -hs
440G    .
[root@liz DECSC]# 

聽起來這是在具有直接塊分配而不是擴展區的文件系統上,例如 ext3。

這意味著每個數據塊在表中(inode 中)都有一個條目。前 12 個條目是直接塊,即直接指向數據塊。下一個條目是一個間接塊,它指向一個再次包含塊號的塊。第 13 塊是雙重間接塊,第 14 塊是三重間接塊。

所有這一切意味著,對於諸如 370GB 文件之類的大文件,在定址所有數據塊時涉及大量塊。這可能就是差異的來源;du考慮所有塊,而不僅僅是數據塊。ls顯示文件大小,但目錄中的總空間再次顯示所有已用空間,而不僅僅是數據塊。

對於較大的文件,我不建議使用 ext3,當然也不建議使用 ext2。使用現代的基於範圍的文件系統,例如 ext4。對於基於範圍的文件系統,這些塊被索引為“第一個塊在 3874 處,這擴展了 342 個塊”,並且根據需要添加更多的範圍。通過這種方式,只需使用兩個數字就可以找到許多塊。這不僅更節省空間,而且速度也更快,因為不需要載入所有這些額外的塊。

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