首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么du -b和du -k有这么大的不同

为什么du -b和du -k有这么大的不同
EN

Server Fault用户
提问于 2022-05-18 10:33:19
回答 1查看 163关注 0票数 1

我使用的是Ubuntu16.04.5LTS,而du的版本是8.25。现在我有一个问题:

代码语言:javascript
复制
$ du -b /var/log/lastlog
69788251412 /var/log/lastlog

大小匹配命令ls -al。当我使用du -k时,它有另一个结果:

代码语言:javascript
复制
$ du -k /var/log/lastlog
80 /var/log/lastlog

两个结果不一致,为什么?

EN

回答 1

Server Fault用户

发布于 2022-05-18 10:49:30

/var/log/lastlog是在“随机访问”模式下使用的二进制文件,而不是附加到其中的日志,因此自然是一个稀疏文件,如在本手册(GNU/Linux)中注明

备注 lastlog文件是一个数据库,它包含每个用户最后一次登录的信息。你不应该旋转它。It是一个稀疏文件,因此它在磁盘上的大小通常比"ls -l“所显示的要小得多(如果您有一个具有较高UID的passwd用户,它可以表示一个非常大的文件)。你可以用"ls -s“显示它的真实大小。

稀疏意味着它的实际磁盘使用量小于其表面大小。

在GNU/Linux上,-b选项du被描述为:

-b--bytes等价于--apparent-size --block-size=1

也就是说,-b通过包含--apparent-size显式地禁用稀疏文件的检测和处理。

因此,要使大小与-k匹配(磁盘上的实际使用情况),请使用:

代码语言:javascript
复制
du --block-size=1 /var/log/lastlog

或者在KiB match -b中有大小(具有表观大小),请使用:

代码语言:javascript
复制
du --apparent-size -k /var/log/lastlog
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1101205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档