为什么“rsync --sparse”创建的文件比源文件大得多?

为什么“rsync --sparse”创建的文件比源文件大得多?

我尝试在 2 个本地磁盘之间进行 rsync,因此没有压缩。稀疏文件的表观大小为 50GB,实际大小为 16GB。我试过了rsync -a -P --sparse,最后确实在目标上生成了稀疏文件。但是,它不如源文件那么稀疏。生成的文件是 27GB,而不是 16GB。我可以用它fallocate -d <filename>来进一步缩小它。它变成了 18GB 左右。但是,此操作需要很长时间。另一方面,cp -a --sparse可以创建相同的文件。

而且速度和没有 的 rsync 命令一样慢--sparse。这是因为

按照目前的设计,--sparse 选项仅影响目标文件的写入,而不影响数据的传输

但是,我更感兴趣的是远程大小。我想知道为什么 rsync 没有复制与源文件完全相同的大小cp --sparse=always

--inplace即使目的地为空,也会发生这种情况。所以我想这与选项无关。

rsync  version 3.1.3  protocol version 31

根据@anx,我做了一些测试,--block-size=4096结果显示远程文件大小相同。

相关内容