![在 rsync 中,我可以使用外部文件向 --delete 添加例外吗?](https://linux22.com/image/56802/%E5%9C%A8%20rsync%20%E4%B8%AD%EF%BC%8C%E6%88%91%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E5%A4%96%E9%83%A8%E6%96%87%E4%BB%B6%E5%90%91%20--delete%20%E6%B7%BB%E5%8A%A0%E4%BE%8B%E5%A4%96%E5%90%97%EF%BC%9F.png)
我想要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
包含我们不想删除的文件。