rsync:比较2个目录,复制并重命名不同的文件而不是覆盖目标

rsync:比较2个目录,复制并重命名不同的文件而不是覆盖目标

我找不到在 Linux 上使用 rsync 执行以下操作的解决方案:

  • 比较两个文件夹
  • 当在源树和目标树的相同根位置上找到两个相同的文件时,它们具有相同的名称,但时间戳或大小不同:
  • 不是通过将源文件(较新或较大的大小)更新到目标文件(较小的大小或较旧的时间戳),而是通过将丢失的块附加到内容(使用 -u)或替换整个文件(使用 -W),我想要它:将其复制到同一树位置,并带有名称前缀或后缀。

已经有一个解决方案为了避免在被覆盖时丢失旧文件,将它们复制到第三个文件夹中,但我认为将它们复制到目标上的同一位置,然后重命名它们,将旧文件也保留在那里,通过保留新文件将获得更好的上下文文件位置。

我希望它的工作方式如下:

在此输入图像描述

答案1

如果我理解正确的话,您想要对文件进行版本控制。这在中讨论过上一个问题,但您想要处理整个目录的情况除外。这很容易做到(摘自@Sridhar-Sarnobat 的回答):

rsync -ab --suffix=`date +'.%F_%H-%M-%S'` ${SRC}/ ${DEST}

相关内容