【问题标题】:`du -sh` produces different results on different machines for the same folder [closed]`du -sh` 在同一文件夹的不同机器上产生不同的结果[关闭]
【发布时间】:2016-10-15 22:25:17
【问题描述】:

我使用 rsync 从一台机器同步到另一台机器(所以我认为它应该是包含相同文件集的同一个文件夹——而且它确实只包含文件)

当我在原始机器上执行du -sh 时,它会产生:

4.0M   .

但在我的电脑上,它会产生:

3.5M   .

当我在两台机器上的文件夹中执行ls -lh 时,每个文件的结果都是相同的。

我问了一个人,他们告诉我用du -bc,这次结果和现在一样。

原来的服务器运行的是“SUSE Linux Enterprise Server 11 SP2”,我的电脑运行的是Ubuntu 12.04。

所以du -sh 的实现似乎有些不同?或者为什么同一组文件不同?

【问题讨论】:

  • 我投票结束这个问题,因为它不是关于编程的。试试unix.stackexchange.com
  • @mustaccio,谢谢。我现在明白了。我会在 unix stackexchange 中询问

标签: linux ubuntu suse


【解决方案1】:

du 计算磁盘使用量,而不是文件大小。

文件系统为文件分配存储的方式不同可能会导致同一组文件的磁盘使用情况不同。

磁盘使用率可能不同的一些可能原因,这不是详尽的列表:

  1. 您使用不同的文件系统(例如 ext4 与 btrfs)
  2. 文件系统配置不同(例如,不同的块大小、日志选项、文件系统压缩)
  3. 文件系统使用的分配策略
  4. 稀疏文件可能看起来更大,但使用的磁盘空间更小
  5. 硬链接共享磁盘空间

【讨论】:

  • 如果我使用du -bc(我认为它是在计算二进制大小),那么这两个文件系统会产生相同的结果。大约 5,没有硬链接。不过谢谢你的回答(我对文件系统和相关知识不是很熟悉。我稍后会google并检查我的两台机器。
  • @JunchaoGu:-b 计算文件的表观大小,即可以从文件中读取的数据量。你应该检查man du,它解释了你需要知道的关于那里的标志的一切。
猜你喜欢
  • 1970-01-01
  • 2018-03-27
  • 2020-09-17
  • 1970-01-01
  • 2019-06-03
  • 2016-10-05
  • 1970-01-01
  • 2021-08-21
  • 2020-06-09
相关资源
最近更新 更多