文件
假设/foo/src
仅包含A.c
并且/foo/dest
同时包含A.c
和B.c
。假设我运行以下命令:
rsync /foo/src/ /foo/dest
會rsync
刪除B.c
嗎?
文件夹
现在假设/foo/src
包含目录,A
其中包含一些文件,并且/foo/dest
包含目录A
和B
,每个目录都包含一些文件。假设我运行以下命令(-a 选项包括 -r,递归):
rsync -a /foo/src/ /foo/dest
是否会rsync
擦除B
其内容?
答案1
默认情况下,rsync 不会删除文件,但这取决于您指定的命令选项。如果您想删除文件,可以使用以下任何选项:
- −−del(−−delete−during 的别名)
- −−delete(从目标目录删除多余的文件)
- −−delete−before(接收方在传输之前删除 [默认])
- −−delete−during(接收方在传输期间删除,而不是之前)
- −−delete−after(接收方在 xfer 之后删除,而不是之前)
- −−delete−excluded (也从目标目录中删除排除的文件)
- −−max−delete=NUM(不要删除超过 NUM 个文件)
由于你特别指出-A选项,以下是手册页的内容
−a, −−存档 >
这相当于−rlptgoD。这是快速表示您想要递归并希望保留几乎所有内容(−H 是一个明显的遗漏)的方式。上述等价的唯一例外是−−文件−来自已指定,在这种情况下不暗示 -r。
注意−a 不保留硬链接,因为查找多重链接文件的成本很高。您必须单独指定−H。
因此,似乎你的问题的答案是否定的,根据你的例子,它不会被删除
。HTH