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

使用for loop结合rsync仅同步指定文件夹的问题排查

问题分析与解决

你的命令核心问题是rsync的参数顺序和源路径写法错误:

  • 当前命令rsync -ah $var source/ target/中,你把$var和source/同时作为rsync的源路径,这会导致rsync每次都把整个source/目录同步到target/,完全忽略了$var的作用(甚至如果$var不是有效路径,rsync还会报错但依然同步source/)。
  • 正确的逻辑应该是:以source/下的目标子文件夹作为源,也就是把$var和source/拼接成完整的源路径。

修正后的命令

for var in $(cat final.txt); do rsync -ah "source/$var" "target/"; done

额外注意事项

  • 用双引号包裹"source/$var"和"target/",避免子文件夹名包含空格、特殊字符时出现解析错误。
  • 如果final.txt里的每行是相对source目录的子文件夹路径(比如sub1/sub2这种嵌套路径),上面的写法依然有效,rsync会自动在target目录下创建对应的层级结构。
  • 若需要让target下的对应子文件夹与source完全同步(删除target中source没有的文件),可添加--delete选项,但需谨慎使用该参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:40:47