为什么 df 的输出默认不为人类可读的格式?

为什么 df 的输出默认不为人类可读的格式?

我的意思是,开发人员是否认为人们会喜欢阅读 19478204 而不是 19 GB?

难道是在旧系统中没有那么多磁盘空间,所以当时可以计算每个数字吗?

答案1

输出字节数比输出人类可读的数字更精确。我使用两者,但在复制数据或验证文件大小时,非人类可读是必须的。

由于一个人明智的默认行为会令另一个人持续烦恼,因此实际上没有“正确”或“错误”的答案。然而,很容易强制df输出人类可读的数字:

$ echo "alias df='df -h'" >> ~/.bashrc

如果您想df在其默认模式下使用,请使用\以下命令转义它:

$ \df

答案2

我只是猜测,但大多数 Unix 工具都是为在管道中工作而构建的。从这个角度来看,字节数可能是最有用的,因此是一个合理的默认值

答案3

长话短说:因为硬盘驱动器的块数(大部分)为 512 或其他 2 的幂

df -k如果你将(这是 GNU df 版本的默认值)的输出除以 1024,你实际上会得到df -h。从阅读维基百科以及我的 Ubuntu 系统上的手册页df,似乎有一个历史原因,因为 Unix System V 始终使用 512 大小的块。实际上,磁盘扇区容量为 512MB,所以我想这对于了解分区占用了多少个磁盘空间扇区来说很实用。

另一方面,1024 个块更接近我们理解的 1000 字节,因此 GNU 可能默认将 df 输出为该值。但同样,我们人类以字节为单位来思考,它是 10 的幂,而磁盘是以扇区为单位创建的,而计算机以 2^x 的幂来计算。

相关内容