我想只与rsync同步特定文件。我发现:什么是rsync filter -f'隐藏,! * /'做什么?
rsync --include='SpecificFiles*' -f 'hide,! */' ~/src ~/dst
“include”很明显,但“-f ...”部分是干什么的? 谢谢!
我想只与rsync同步特定文件。我发现:什么是rsync filter -f'隐藏,! * /'做什么?
rsync --include='SpecificFiles*' -f 'hide,! */' ~/src ~/dst
“include”很明显,但“-f ...”部分是干什么的? 谢谢!
rsync --include='SpecificFiles*' -f 'hide,! */' ~/src ~/dst
首先, - include
告诉rsync的复制一切配套SpecificFiles*
。
二,规则-f 'hide,! */'
隐藏所有非目录。这意味着除非它与先前的包含规则匹配,否则不会复制常规文件。
更详细地说,hide,
启动隐藏规则。由于*/
匹配所有目录,因此它的否定! */
匹配所有非目录。因此,-f 'hide,! */'
隐藏所有非目录。
另外,隐藏类似于排除除非还指定了删除选项。在这种情况下,如果隐藏的文件已经在目的地,那么将被删除,就像它在源处不存在一样。相反,如果排除的文件已经在目的地,则目标文件不会被删除。
完美:)谢谢! – refle
http://explainshell.com/explain?cmd=rsync+-f – str
这可能是一个有趣的阅读:http://blog.mudflatsoftware.com/blog/2012/10/31/tricks-with- rsync-filter-rules/ – andlrc