使用 rsync 来区分本地文件、远程文件和存在于其中但不存在于另一文件上的文件

使用 rsync 来区分本地文件、远程文件和存在于其中但不存在于另一文件上的文件

我使用以下命令来比较本地和远程计算机上的目录

rsync -K --delete -n -avrc $cwd/* simon@${othIP}:$cwd    > /tmp/output

其中宏具有明显的值。

然后,我可以解析/tmp/output以查找同步后哪些文件将从远程删除。

但我需要区分文件

    - exist on the *local* but do not exist on the *remote*

    - exist on both but are different.

(正如 @BowlOfRed 指出的,上面的命令允许我识别存在于远程但不存在于本地的文件。)

有人可以推荐一种方法来做到这一点吗?非常感谢您的任何建议

答案1

存在于远程但不存在于本地的文件将被删除,并且在详细输出中将显示为“删除文件名”。

两者都存在但不同的文件将被更新。仅显示文件名(前面不显示“删除”)。

如果需要区分“新”文件和“更新”文件,请添加 -i 标志。新文件的所有属性都将显示为“+”,而更新的文件将显示特定的属性。

$ echo update > a/update ; echo new > a/new
$ rm a/delete_me_later
$ rsync --delete -ai a/ b/
*deleting   delete_me_later
.d..t....... ./
>f++++++++++ new
>f.st....... update

相关内容