Ls

ls -ls 輸出顯示的塊數大於文件大小

  • January 4, 2022

據我所知,帶有“-s”選項的 ls 命令以塊為單位列印文件大小,ls 使用 1024 作為塊大小,但我注意到一些奇怪的東西。

為了更好地理解,請考慮 ls -ls 命令的以下輸出:

12 -rw-r–r–。1 根 10240 Jul 15 19:22 z

文件大小為 10240 字節,塊大小為 1024,因此該文件的塊數為 10240/1024 = 10 個塊,但為什麼ls顯示 12 個塊?

問候

這裡ls實際報告的是為文件分配的塊的大小。該大小為 12 kB。

這個大小傳統上以 512 B 的“塊”報告,因為在古代 Unix 系統上,它確實是許多 512 字節的塊。但是塊大小取決於文件​​系統,而ls無論如何都使用相同的單位。GNU 工具使用 1 kB 而不是 512 B 作為單位,因為千字節對人類來說比半千字節更有意義。

Ext4 和其他幾個常見的文件系統預設為 4 kB 塊。所以一個 10240 字節的文件佔用 3 個塊,這 3 個塊的大小是 12 kB。

另請參閱文件塊大小 - stat 和 ls之間的差異和塊大小和集群大小之間的差異。

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