我想同步 2 个目录 ( /src
& /dst
) 以镜像这两个目录中的所有文件。
这是一个步骤:
sudo rsync -vaP --stats /src /dst
-> 已完成且没有错误sudo rsync -vaP --stats /dst /src
-> 已完成且没有错误diff -rq /src /dst
-> 不显示任何差异。du -s /src && du -s /dst
显示不同的尺寸(10% 差异)。
怎么可能?我完全陷入了这个困境。
答案1
-S
当不使用该标志时,稀疏文件可能会在副本上扩展。 (会使目的地占用更多空间)-H
当不使用该标志时,树中的硬链接可以扩展为单独的副本文件。 (会使目的地占用更多空间)- 文件系统可能有不同的分配大小。一个单字节文件在一个文件系统上可能占用 512 字节的磁盘分配,在另一文件系统上可能占用 4096 字节(甚至更多)。如果您的树有很多小文件,这将会产生很大的差异。 (目的地可能会根据具体情况占用更多或更少的空间)
- 目录可能比保存某些文件系统上的当前内容所需的大得多。复制内容后,目标目录会变小。通常没什么大不了的,但一些病态目录可能会很大。 (将使目的地占用更少的空间)
文件系统也可能具有不同的压缩/重复数据删除/冗余设置,从而导致数据的不同存储要求。但这种情况不太常见,即使存在,差异也并不总是通过 可见du
。