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

标签 linux ubuntu suse

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

当我这样做时du -sh在原始机器上,它产生:

4.0M   .

但在我的计算机上,它会产生:

3.5M   .

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

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

原始服务器运行“SUSE Linux Enterprise Server 11 SP2”,我的计算机运行 Ubuntu 12.04。

看来 du -sh 的实现存在一些差异?或者为什么同一组文件的结果不同?

最佳答案

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

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

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

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

关于linux - `du -sh` 对于同一文件夹在不同机器上产生不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37824688/

相关文章:

linux - bash 后台进程不工作,或者我错过了什么?

检查正在运行的程序中的内存泄漏

python - 系统重启后 Airflow 数据库重置

java - Java 程序的 Linux 和 UnknownHostException

Linux 上的全屏 Java - 如何覆盖任务栏?

linux - 在linux中预加载动态加载的库

mysql - 使用 user=root 运行 MySQL

linux - 我的 AWS 服务器(debian 或 Linux)需要什么包格式

linux - ACE 和异步 UDP 通信

c - 如何使用 recv() 检测客户端是否仍处于连接状态(且未挂断)?