使rsync排除包含具有特定名称的文件的所有目录
发布时间:2020-12-14 01:15:19 所属栏目:Linux 来源:网络整理
导读:我希望rsync排除包含具有特定名称的文件的所有目录,例如“.rsync-exclude”,与“.rsync-exclude”文件的内容无关. 如果文件“.rsync-exclude”只包含“*”,我可以使用rsync -r SRC DEST –filter =’dir-merge,– .rsync-exclude’. 但是,应该排除目录,而不
我希望rsync排除包含具有特定名称的文件的所有目录,例如“.rsync-exclude”,与“.rsync-exclude”文件的内容无关.
如果文件“.rsync-exclude”只包含“*”,我可以使用rsync -r SRC DEST –filter =’dir-merge,– .rsync-exclude’. 但是,应该排除目录,而不依赖于“.rsync-exclude”文件的内容(至少应该可以将“.rsync-exclude”文件留空). 有任何想法吗? 解决方法
rsync不支持这个(至少manpage没有提到任何内容),但你可以分两步完成:
>运行find以查找.rsync-exclude文件 --exclude-from=FILE This option is related to the --exclude option,but it specifies a FILE that contains exclude patterns (one per line). Blank lines in the file and lines starting with ';' or '#' are ignored. If FILE is -,the list will be read from standard input. 或者,如果你不介意在文件中放一些东西,你可以使用: -F The -F option is a shorthand for adding two --filter rules to your command. The first time it is used is a shorthand for this rule: --filter='dir-merge /.rsync-filter' This tells rsync to look for per-directory .rsync-filter files that have been sprinkled through the hierarchy and use their rules to filter the files in the transfer. If -F is repeated,it is a short- hand for this rule: --filter='exclude .rsync-filter' This filters out the .rsync-filter files themselves from the transfer. See the FILTER RULES section for detailed information on how these options work. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |