為什麼更改區塊大小時 ls 顯示檔案大小不同?

為什麼更改區塊大小時 ls 顯示檔案大小不同?

我想檢查我的檔案系統備份大小

ls -lia backup.tgz 
17 -rw-r--r-- 1 root root 84972633333 мај 28 10:05 backup.tgz

塊尺寸為 M

 ls -l --block-size=M backup.tgz 
-rw-r--r-- 1 root root 81037M мај 28 10:05 backup.tgz

最後用區塊大小G

ls -l --block-size=G backup.tgz 
-rw-r--r-- 1 root root 80G мај 28 10:05 backup.tgz

有人能解釋一下如此巨大的差異嗎?

答案1

這些值使用 2 的冪而不是 10 的冪顯示;所以1M是1,048,576字節,1G是1,073,741,824位元組。

如果進行相應的除法,則值將與輸出匹配ls(向上舍入):

$ echo $((84972633333.0/1024/1024))
81036.218007087708

$ echo $((84972633333.0/1024/1024/1024))
79.136931647546589

您可以指定KBMBGB來代替使用 10 的冪:

ls -l --block-size=MB backup.tgz

關於塊大小的部分coreutils文件中了解詳細資訊。

相關內容