我使用 rsync 从一台机器同步到另一台机器(所以我认为它应该是包含相同文件集的同一文件夹 - 并且它只包含文件)
当我这样做时du -sh
在原始机器上,它产生:
4.0M .
但在我的计算机上,它会产生:
3.5M .
当我这样做时ls -lh
在两台机器上的文件夹中,每个文件的结果是相同的。
我问过某人,他们告诉我使用 du -bc
,这次结果是一样的。
原始服务器运行“SUSE Linux Enterprise Server 11 SP2”,我的计算机运行 Ubuntu 12.04。
看来 du -sh
的实现存在一些差异?或者为什么同一组文件的结果不同?
最佳答案
du 计算磁盘使用情况,而不是文件大小。
文件系统为文件分配存储方式的差异可能会导致同一组文件的磁盘使用情况不同。
磁盘使用情况可能不同的一些可能原因,这不是详尽的列表:
- 您使用不同的文件系统(例如 ext4 与 btrfs)
- 文件系统的配置不同(例如不同的 block 大小、日志选项、文件系统压缩)
- 文件系统使用的分配策略
- 稀疏文件可能看起来较大,但使用较小的磁盘大小
- 硬链接(hard link)共享磁盘空间
关于linux - `du -sh` 对于同一文件夹在不同机器上产生不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37824688/