如何让 rsync 删除目标文件夹中已使用 shell glob 在源文件夹中删除的文件?

如何让 rsync 删除目标文件夹中已使用 shell glob 在源文件夹中删除的文件?

我正在尝试定期将文件从多个来源收集到单个文件目标中。为了保存副本,我尝试使用 rsync,但遇到了一些麻烦。假设我想从文件夹中复制一些文件:

"/var/log/dir2/*.cert",
"/var/log/dir1",

事实是,假设 /var/log/dir2 包含 2 个证书文件 (file1、file2)。我同步它们一次:

 rsync -av /var/log/dir2/*.cert  /tmp/dest --delete-before

太好了,现在目标包含 file1.cert 和 file2.cert:

rm /var/log/dir2/file1.cert

再次同步:

rsync -av /var/log/dir2/*.cert  /tmp/dest --delete-before

我期望目标目录只包含 file2.cert,即 file1.cert 被删除,就像在源目录中一样,但这并没有发生。为什么会这样?我该如何让它工作?

答案1

delete-before 应该在您同步文件夹而不是单个文件时起作用。

如果你尝试过:

rsync -av /var/log/dir2/  /tmp/dest --delete-before

我想这会按照你预期的方式进行。

相关内容