为什么du
的输出经常和du -b
有差别? -b
是--apparent-size --block-size=1
的简写。大多数情况下只使用--apparent-size
可以获得相同的结果,但--block-size=1
似乎可以解决问题。我想知道输出是否正确,哪些数字是我想要的? (即,实际文件大小,如果复制到另一个存储设备)为什么`du`的输出经常与`du -b`差异很大
回答
外观尺寸是您的应用程序认为是文件中的字节数。如果您决定通过FTP或HTTP发送文件,则会通过网络传输的数据量(不包括协议标题)。这也是cat theFile | wc -c
的结果,以及如果使用mmap
加载整个文件,文件占用的地址空间量。
磁盘使用情况是由于文件占用该空间而无法用于其他内容的空间量。
在大多数情况下,外观尺寸小于磁盘使用量,因为磁盘使用量计算文件最后(部分)块的全部大小,并且外观尺寸只计数最后一个块中的数据。然而,当你有一个稀疏文件时,表面大小会变得更大(当你寻找文件末尾的某处时会创建稀疏文件,然后在那里写一些东西 - 操作系统并不打算创建大量充满零的块 - - 它只为您决定写入的文件部分创建一个块)。
谢谢!这是一个彻底的解释。那么为什么我需要让'--block-size = 1'具有与'wc -c theFile'相同的输出(保存cat进程)。看起来像'du'只输出正确的字节数,当我指定-h,-k,-m,-B1等时?但也许这是另一个问题? 'du'默认输出块的使用情况,而不是字节的使用情况? – knittl 2011-04-17 16:57:14
@ knittl:我不知道。 – 2011-04-17 19:00:55
很好的解释,但不会谈论问题中存在的'--block-size = 1' - -1。 – 2017-02-17 18:41:20
因为默认情况下,du提供的磁盘使用率与文件大小相同或更大。由于根据--apparent大小说
print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be
larger due to holes in (`sparse') files, internal fragmentation, indirect blocks, and the like
那么究竟是什么'表观大小'呢?和我完全相反:外观尺寸几乎总是比磁盘使用量高出几个量级 – knittl 2011-04-17 16:34:07
比较(例如)du -bm
到du -m
。
的-b
套--apparent-size --block-size=1
, 但随后m
覆盖块大小是1M
。
-bh
为与-h
类似: 的-bh
装置--apparent-size --block-size=1 --human-readable
,并再次h
重写该块大小。
文件和文件夹有其真实大小和磁盘大小
--apparent尺寸是文件或文件夹的实际尺寸
磁盘上的大小是字节数的文件或文件夹在磁盘上。使用时只需杜
如果遇到明显的大小几乎总是比磁盘使用率较高的几个数量级 同样的事情,那么就意味着你有很多的文件('疏')文件与内部碎片或间接块。
- 1. 功能中的DD和DU异常
- 2. du命令和Python函数之间的文件大小差异
- 3. 为什么java中的File.length()的大小与linux du命令的大小不同
- 4. du linux命令大小大于df
- 5. 为什么argc的输出有差异?
- 6. DU案例名称
- 7. 运行ls -l时,为什么目录上的文件大小不符合du的输出?
- 8. 为什么du或echo流水线不工作?
- 9. du命令为什么显示不正确的结果
- 10. 从bash脚本中删除du输出的文件部分
- 11. “du -sh”权限被拒绝
- 12. Bash别名du-sh +排序
- 13. linux du命令源代码
- 14. Mac OS X上的“du”命令和“get info”显示的尺寸差异
- 15. 如何对du -h输出进行排序?
- 16. Linux du目录大小,这怎么可能?
- 17. 在Mac OS 10.6上获得排序的,可读的du输出的最有效方法是什么?
- 18. 相当于`du`命令的PHP吗?
- 19. 为什么shell输出经常在其输出中使用`mixed_characters'?
- 20. 什么使无效选项du命令错误?
- 21. du -skh * in /返回与df在centos上大不相同的大小5.5
- 22. 访问DU会员的姓名字段
- 23. NUnit与Rhino Mocks异常:为什么抛出此异常?
- 24. 为什么帧很差
- 25. 为什么运行时异常是未经检查的异常?
- 26. ls -h报告更多diskusage然后du -h,怎么样?
- 27. 使用find&du获取文件夹的总大小
- 28. 使用du获取特定子目录的大小
- 29. 为什么我的SQL输出有差异
- 30. 为什么会出现这种差异?
为什么downvote?这看起来像一个非常好的问题。请有礼貌地发表评论,如果你想减少问题或答案,以便每个人都可以学到一些东西。匿名downvote是一个潜在的教学时刻扔掉。 – 2011-04-17 16:38:52
@Pete:可能是因为这是关于StackOverflow的主题。我希望有更多的高声誉用户会注意到。 – 2011-04-17 20:41:55