什么rsync过滤器-f'隐藏,! * /'做?

时间:2016-07-22 06:26:52

标签: bash terminal rsync

我想只使用rsync同步特定文件。我找到了:

rsync --include='SpecificFiles*' -f 'hide,! */' ~/src ~/dst

"包括"很明显,但" -f ..."部分吗? 谢谢!

2 个答案:

答案 0 :(得分:6)

rsync --include='SpecificFiles*' -f 'hide,! */' ~/src ~/dst

首先, - include告诉rsync复制与SpecificFiles*匹配的所有内容。

其次,规则-f 'hide,! */'隐藏所有非目录。这意味着除非前一个包含规则匹配,否则不会复制常规文件。

更详细地说,hide,启动隐藏规则。由于*/匹配所有目录,因此其否定! */匹配所有非目录。因此,-f 'hide,! */'隐藏了所有非目录。

除此之外, hide 类似于 exclude ,除非还指定了删除选项。在这种情况下,如果隐藏的文件已经在目的地,则 将被删除,就好像它在源处不存在一样。相反,如果排除的文件已在目的地,则不会删除目标文件

答案 1 :(得分:-1)

-f, --filter=RULE    add a file-filtering RULE
-F                   same as --filter='dir-merge /.rsync-filter'

-f 'hide,! */'隐藏所有非目录。

为什么不阅读following

另外,你有没有试过rsync --help