以下命令将文件从 $MIRROR_SOURCES 相对于 $MIRROR_SOURCE 递归复制到 $MIRROR_DEST;但删除标志不起作用。
rsync -var --files-from=$MIRROR_SOURCES --delete $MIRROR_SOURCE $MIRROR_DEST
答案1
读- 删除仔细地man rsync
,强调一下:
这告诉 rsync 从接收端删除多余的文件(不在发送端的文件),但是仅适用于正在同步的目录您必须要求 rsync 发送整个目录(例如“dir”或“dir/”)而不使用目录内容的通配符(例如“dir/*”),因为通配符已被 shell 扩展,因此 rsync 会获得传输单个文件的请求,而不是文件的父目录。 除非使用 --delete-excluded 选项,否则从传输中排除的文件也不会被删除或者将规则标记为仅在发送端匹配(请参阅过滤规则部分中的包含/排除修饰符)。
故事的底线是,它只对您指定要同步的内容执行此操作,并且取决于您是否指定了通配符,如果您不想要这样,而是希望它在任何地方发生,那么您也可以指定标志--delete-excluded
。