You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

rsync --files-from结合find输出使用异常问题咨询

解决rsync --files-from未正确排除目录的问题

你的问题核心出在find命令的-path参数写法错误,导致它根本没排除掉parent4和parent5目录,rsync自然会传输所有内容。咱们一步步拆解和修正:

1. 为什么你的find命令没生效?

你写的-not -path ' parent4 '有两个关键问题:

  • 路径前后的空格是多余的,实际路径是thisdir/parent4,这个模式根本匹配不到任何内容
  • -path需要匹配完整路径的模式,要排除parent4及其所有子目录,应该用通配符覆盖整个路径层级,比如*/parent4/*

2. 修正后的命令

把find命令改成这样,就能正确生成排除parent4和parent5的文件列表:

rsync -r -i --files-from=<(find thisdir/ -not -path '*/parent4/*' -not -path '*/parent5/*') ./ root@10.125.126.115:/root/

如果只想传输文件(不想传输空目录),可以给find加上-type f参数,同时去掉-r(因为只传输单个文件不需要递归):

rsync -i --files-from=<(find thisdir/ -type f -not -path '*/parent4/*' -not -path '*/parent5/*') ./ root@10.125.126.115:/root/

3. 额外排查技巧

如果rsync还是意外传输了某些内容,建议先单独运行find命令查看输出:

find thisdir/ -not -path '*/parent4/*' -not -path '*/parent5/*'

确认列表里确实没有parent4/parent5相关的路径——先确保生成的文件列表正确,再验证rsync的行为,这是排查这类问题的关键步骤。

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 09:22:39