`du -sh` 在不同机器上对同一个文件夹产生不同的结果

`du -sh` produces different results on different machines for the same folder

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

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

4.0M   .

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

3.5M   .

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

我问过人,他们告诉我用du -bc,这次结果是一样的。

原服务器是运行"SUSE Linux Enterprise Server 11 SP2"我的电脑是运行Ubuntu12.04.

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

du 统计磁盘使用情况,而不是文件大小。

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

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

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