我尝试在 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
结果显示远程文件大小相同。