在 rsync 中,我可以使用外部文件向 --delete 添加例外吗?

在 rsync 中,我可以使用外部文件向 --delete 添加例外吗?

我想要rsync

  • 将所有文件从源复制到目标
  • 如果源中不再存在某个文件,请将其从目标中删除,某些特定文件除外

我需要列出例外情况在一个单独的文件中,就像我可以使用该--exclude-from选项一样。

这可能吗?

答案1

我不确定您是否可以在排除选项中包含文件列表,但您可以尝试以下操作:

$ rsync -avz --exclude delete_file_1.php --exclude dir_1/file4.txt \
     directory_source/ directory_destination/

或者你可以:

$ rsync -avz --exclude 'dir_1/dir_2/file_3.php' source/ destination/

或者你可以:

$ rsync -avz --exclude 'dir*' <-- wildcard match here

如果我是你,我会创建要同步到远程目标的测试文件夹,然后看看效果如何。只要您的排除选项正确,您就可以操纵它来排除大量文件。

答案2

显然,只有运行 rsync 2 次才有可能,如下所示:

rsync -a source/ dest
rsync -a --exclude-from=files.txt --delete source/ dest

其中files.txt包含我们不想删除的文件。

相关内容