首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >du是如何估计文件大小的?

du是如何估计文件大小的?
EN

Stack Overflow用户
提问于 2017-01-12 14:17:14
回答 2查看 375关注 0票数 0

我正在用wget下载一个大文件,它是我用wget -bqc在后台运行的。我想看看有多少文件被下载,所以我运行

du -sh *

在目录中。(我也想知道在这种情况下,如果有人知道的话,有更好的方法来检查wget进度……)我看到已经下载了25 GB,但后来几次尝试都显示了同样的25 GB的结果。我开始担心du以某种方式干扰了下载,直到一段时间后,du显示的结果是33 GB,随后是40 GB。

在搜索stackoverflow和在线时,我没有发现在正在写入的文件上使用du是否安全,但我确实看到这只是一个估计,可能会有一些偏差。然而,7-8 GB似乎很多,特别是因为它是单个文件,而不是目录树,这似乎是导致估计错误的原因。我很想知道它是如何对正在编写的单个文件做出这个估计的,以及为什么我会看到这个结果。

EN

回答 2

Stack Overflow用户

发布于 2017-01-12 14:25:56

操作系统必须保证安全访问。

du没有估计任何东西。内核知道文件的大小,当du请求它时,它就知道了。

如果文件在千兆字节的范围内,而报告的大小仅具有该粒度,则连续的调用显示相同的大小也就不足为奇了--您是否期望wget能够获取足够的数据,以便在两次检查之间转换到另一个千兆字节?您可以尝试在不使用sh的情况下运行du,以便获得更准确的读数。

此外,wget将在ram中保存一些数据量,但这应该可以忽略不计。

票数 0
EN

Stack Overflow用户

发布于 2019-03-18 20:51:07

du不是估算,而是汇总。但它可以访问一些文件系统内部信息,这可能会使它的输出令人惊讶。各个方面应该分开查看,因为它们太多了,无法在这里详细解释。

  1. 稀疏文件可能使文件看起来比它在磁盘上的大。
  2. 硬链接可能使目录树看起来比它在磁盘上的大。
  3. 块大小可能使文件看起来比它在磁盘上的小。

du总是打印出一棵(或几棵)目录树在磁盘上实际占用的大小。由于各种事实(上面给出了三个最常见的),这可能与存储在这些树中的信息的大小不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41606296

复制
相关文章

相似问题

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