操作系统是 Debian 10,rsync 版本 3.1.3。我像这样运行 rsync:
time rsync -ar --delete --info=progress2 --files-from=filelist.txt . /path/to/dest
Run Code Online (Sandbox Code Playgroud)
这可以复制文件,但不会删除任何已删除的内容。(要么从 src 中完全删除,要么在我的例子中,从 filelist.txt 中删除)这是一个大问题。我发现的唯一解决方法是简单地删除整个目标并再次复制所有内容,但这需要大量时间,并且基本上否定了首先使用 rsync 的意义。
这是一个错误吗?如何让 rsync 正常工作,尊重 --delete 标志,就像它应该的那样?
编辑:
例如:
假设“foo”“bar”“bat”等是目录。
您需要告诉 rsync 删除丢失的参数:
rsync -arv --delete-missing-args --delete --info=progress2 --files-from=filelist.txt . /path/to/dest
Run Code Online (Sandbox Code Playgroud)
foo它也会被/path/to/dest删除--delete-missing-args。foo仍需列入filelist.txt.--delete参数才能允许 rsync 删除foo文件夹中的文件