我想只使用rsync同步特定文件。我找到了:
rsync --include='SpecificFiles*' -f 'hide,! */' ~/src ~/dst
"包括"很明显,但" -f ..."部分吗? 谢谢!
答案 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
?