cp -l
硬链接文件而不是复制它们,从而节省文件系统空间。我需要使用 rsync 而不是 cp,因为它的--exclude
功能更强大。
所以我的问题是,如何让 rsync 硬链接文件而不是复制它们?显然,这是一个本地文件系统副本。我已阅读 rsync 选项的文档-H
,但我不清楚这是否与 的行为相同cp -l
。
答案1
答案是肯定的,使用 rsync 的--link-dest
选项。它只是不太明显,因为它不是像 那样的简单开/关标志cp -l
,因为它需要一个路径参数。
因此,cp -l a/ b/
也可以这样做:
rsync -a --link-dest=../a a/ b/
请注意,目标必须是../a
,因为路径是相对于目标目录的。
(因此,如果您要同步到b/c/
,则路径应该是../../a
。)
答案2
我一直在使用https://github.com/rsnapshot/rsnapshot很长一段时间。它确实实现了您所描述的效果。