为什么更改块大小时 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文档中了解详细信息。

相关内容