如何在保留文件夹结构的同时从目录中复制文件的子集?


Answers:


9

rsync过滤规则的魔力:

$ rsync -av --filter="+ */" --filter="-! *blah*" /source /dest

请查阅rsync手册页以获取有关过滤规则的详细信息,但以下是针对此特殊需求的精简版本。

--filter="+ */" 表示“包括目录中的所有内容”

--filter="-! *blah* 表示“排除文件名中不包含blah的所有内容”


3

如果您需要复制这些文件,cp将执行以下操作:

cd dirA
find . -iname "*blah*" | xargs -If cp --parents f dirB

Option --parents保留子目录-它创建目标的完整目录路径。


这里的语法要比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给我的工作时间加分!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.