rsync filter -f 'hide,! */' 有什么作用?
What does the rsync filter -f 'hide,! */' do?
我只想使用 rsync 同步特定文件。我发现:
rsync --include='SpecificFiles*' -f 'hide,! */' ~/src ~/dst
"include" 很明显,但是“-f ...”部分的作用是什么?
谢谢!
-f, --filter=RULE add a file-filtering RULE
-F same as --filter='dir-merge /.rsync-filter'
-f 'hide,! */'
隐藏所有非目录。
你为什么不读 following?
还有,你试过了吗rsync --help
?
rsync --include='SpecificFiles*' -f 'hide,! */' ~/src ~/dst
首先,--include
告诉 rsync 复制匹配 SpecificFiles*
的所有内容。
其次,规则-f 'hide,! */'
隐藏所有非目录。这意味着除非与先前的包含规则匹配,否则不会复制任何常规文件。
更详细地说,hide,
启动隐藏规则。因为 */
匹配所有目录,它的否定 ! */
匹配所有非目录。因此,-f 'hide,! */'
隐藏所有非目录。
顺便说一句,hide 与 exclude 类似,除非还指定了删除选项。在这种情况下,如果隐藏的文件已经在目的地,它将被删除,就好像它在源不存在一样.相比之下,如果排除的文件已经在目标位置,则目标文件不会被删除。
我只想使用 rsync 同步特定文件。我发现:
rsync --include='SpecificFiles*' -f 'hide,! */' ~/src ~/dst
"include" 很明显,但是“-f ...”部分的作用是什么? 谢谢!
-f, --filter=RULE add a file-filtering RULE
-F same as --filter='dir-merge /.rsync-filter'
-f 'hide,! */'
隐藏所有非目录。
你为什么不读 following?
还有,你试过了吗rsync --help
?
rsync --include='SpecificFiles*' -f 'hide,! */' ~/src ~/dst
首先,--include
告诉 rsync 复制匹配 SpecificFiles*
的所有内容。
其次,规则-f 'hide,! */'
隐藏所有非目录。这意味着除非与先前的包含规则匹配,否则不会复制任何常规文件。
更详细地说,hide,
启动隐藏规则。因为 */
匹配所有目录,它的否定 ! */
匹配所有非目录。因此,-f 'hide,! */'
隐藏所有非目录。
顺便说一句,hide 与 exclude 类似,除非还指定了删除选项。在这种情况下,如果隐藏的文件已经在目的地,它将被删除,就好像它在源不存在一样.相比之下,如果排除的文件已经在目标位置,则目标文件不会被删除。