我想要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
包含我们不想删除的文件。