rsync 可以仅用于创建硬链接而不是复制吗?

rsync 可以仅用于创建硬链接而不是复制吗?

rsync我正在开发一个使用Google Drive 应用程序自动备份我的计算机的系统(我有一台 Macintosh 计算机)。 (此应用程序创建一个目录,其内容保存到 Google Drive 云中。)备份系统的想法是(自动)将文件复制到 Google Drive 目录(rsync最好使用 ),然后将该目录上传到云。

然而,这个系统有一个主要缺点:内存浪费。我备份的每个文件都必须复制到计算机中的第二个位置,从而使文件使用的空间加倍。这将是很多建立硬链接而不是复制可以提高内存效率。我想使用硬链接复制我的目录树,然后在原始更改时更新副本。

我可以用来rsync制作硬链接而不是副本吗?我认为这个选项可能是可行的link--dest=,但我无法弄清楚。

编辑: 针对反馈的一些澄清。

  1. 此问题已被列为重复项 rsync --link-dest 无法按预期使用符号链接。我不明白为什么问题都是一样的。我认为相似性与使用--link-dest=创建硬链接的选项有关。但这就是我不明白该怎么做!所以我对重复的问题不满意。似乎--link-dest=只有当您已经有一个备份来进行比较时,才可以使用硬链接。
  2. 与该网站的用户相比,我并不精通计算机。如果我的问题的答案是“这很简单,只需rsync更仔细地阅读手册页”或类似的内容,我就会这样做。
  3. 我非常高兴使用其他一些 bash 实用程序来实现我正在寻找的功能!我只是碰巧喜欢rsync,但我对其他选择持开放态度。pax例如,JdeBP 建议使用。

答案1

通常的方法是(凭记忆写):

NEWBACKUP=`date +%s` # or some other format
cp -al "$OLDBACKUP" "$NEWBACKUP"
rsync -aH --delete "$SOURCE" "$NEWBACKUP"

查看使用 Linux 和 Rsync 轻松实现自动快照式备份

还有一个--link-dest我从未正确研究过的 rsync 选项。

相关内容