如何使用 rsync 的 --ignore-non-existing 标志?

如何使用 rsync 的 --ignore-non-existing 标志?

我想保持两个目录“同步”,这样本地版本可能只包含一个子集远程版本。因此,同步它们应该会导致对本地子集的任何更改都被推送到远程目录,而对远程目录对相关子集所做的任何更改都会被拉入本地目录。但是,我不希望在没有明确复制的情况下从远程目录拉取任何新文件或目录。

(我想要这样做的原因是因为我在远程服务器上有一个非常大的音乐收藏,但由于磁盘空间不足,我无法一次将整个收藏都放到我的笔记本电脑上。但是,我想将我本地收藏的任何部分与服务器上的相关部分保持同步,特别是在我更新了 ID3 标签、Vorbis 评论等的情况下。)

从手册页的文档来看, rsync 的--ignore-non-existing标志似乎是实现此目的的合理方法,但它没有产生预期的结果。它跳过了第一级子目录,即使两个根目录都包含相同的子目录。

例如,如果远程目录example.org:/path/to/it/包含dir1dir2,并且本地目录/other/dir/包含dir1dir2,我会得到以下结果......

$ rsync --dry-run --ignore-non-existing example.org:/path/to/it/ /other/dir/
skipping directory .

或者尝试使用通配符......

$ rsync --dry-run --ignore-non-existing example.org:/path/to/it/* /other/dir/
skipping directory dir1
skipping directory dir2

有人知道如何正确使用此标志吗?还是我误解了它的用途?或者,如果您对保持目录子集同步有任何其他建议,请告诉我。

谢谢。 :)

答案1

尝试递归地执行此操作:
rsync --recursive --dry-run --ignore-non-existing example.org:/path/to/it/ /other/dir/

相关内容