8 我想将文件的某些子集从dirA移到dirB(假设文件名中带有“ blah”的文件),但是我希望所有嵌套目录在新位置都相同。我怎样才能做到这一点? directory-structure file-copy — 堆栈 source Rsync过滤器的 — Gilles'SO-不再是邪恶的
9 rsync过滤规则的魔力: $ rsync -av --filter="+ */" --filter="-! *blah*" /source /dest 请查阅rsync手册页以获取有关过滤规则的详细信息,但以下是针对此特殊需求的精简版本。 --filter="+ */" 表示“包括目录中的所有内容” --filter="-! *blah* 表示“排除文件名中不包含blah的所有内容” — do source
3 如果您需要复制这些文件,cp将执行以下操作: cd dirA find . -iname "*blah*" | xargs -If cp --parents f dirB Option --parents保留子目录-它创建目标的完整目录路径。 — 乔安娜·科图拉(JoannaKotuła) source 这里的语法要比rsync的更加清晰 — 马捷SMID
0 这为我工作: rsync -ave 'ssh -p 22' --filter="+ */" --exclude="*_blah.blah" uid@555.55.555.55:/source/directory/ /destination/directory/ 所述-e开关定义rsync传输协议与端口-p 22。同样,尾部的/斜杠对于让程序知道它正在处理目录也很重要。 感谢@pdo给我的工作时间加分! — 卡姆比斯 source