我正在比较远程文件夹与本地文件夹,并仅将文件差异复制到新文件夹。
这是我使用的:
rsync -ac --compare-dest=/folder/ rsync://remote/folder/ new-folder/
我的问题是,它还会复制属性(例如在我的情况下修改时间不同的)的文件。
起初我以为--checksum
可以解决我的问题,但正如 Rsync 的手册页所述:
--compare-dest=DIR
如果在 DIR 中发现与发送方文件相同的文件,则该文件将不会被传输到目标目录...如果发现仅属性不同的匹配项,则进行本地复制并更新属性...
有没有办法省略属性检查部分?换句话说,只有当文件的校验和不同时才同步文件?
笔记:我确实想在文件校验和不同时保留属性(--archive
)。
编辑:现在我采取了一种解决方法,首先通过试运行来索引差异
rsync -acn --out-format="%n" rsync://remote/folder/ /folder/ > index_file
sed -i '/\/$/d' index_file # Ignore folders
然后只同步那些
rsync -a --files-from=index_file rsync://remote/folder/ new-folder/
但我仍然想知道是否可以通过类似的方法一次性实现同样的效果--compare-dest
。