登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  文章 >  软件教程

WinSCP 怎样只同步远端新增文件

来源:17golang原创

时间:2026-10-23 05:25:38 499浏览 收藏

如果你的目标是“远端目录里后来新增的文件下载到本地,但本地已有文件不要因为时间或大小不同而再次下载”,WinSCP 的关键设置不是 Existing files only,而是把同步方向设为远端到本地,并取消已有文件的比较条件。Existing files only 会忽略目标端不存在的文件,和本题目标正好相反。

官方地址:https://winscp.net/eng/docs/synchronize

下面按一次 FTP/SFTP 会话中的目录同步来写。操作界面是 WinSCP 的原创说明图,不是实际软件截图;真正执行前请在同步清单中确认文件方向和路径。

先把同步方向设成“远端到本地”

连接会话后,先在远端面板进入要读取的目录,在本地面板进入要接收文件的目录,然后打开菜单 Commands > Synchronize。在 Synchronize 对话框中,目录方向要选择 Local/Left。这个名称容易让人误会:它表示变化从远端目录应用到本地目录,远端是源,本地是目标。

如果使用 Explorer 界面,没有固定的左右双面板,也要在对话框中明确选择本地目录和远端目录。不要只依赖当前选中的面板,否则切换界面布局后很容易把同步方向看反。

WinSCP 原创同步界面说明图,展示远端到本地的目录方向和同步入口
图1:同步设置的界面说明图,重点看远端源目录、本地目标目录和 Local/Left 方向;不是实际软件截图。

用三个取消勾选让“已有文件”不参与比较

在 Synchronize 对话框中选择 Synchronize files,然后按下面的组合设置:

选项本题建议作用
Modification time取消不因远端和本地修改时间不同而把已有文件判为变化
File size取消不因文件大小不同而把已有文件列入同步
Checksum取消不通过校验和比较已有文件内容
Existing files only取消允许远端有、本地没有的文件被识别为新增文件
Delete files保持取消避免把目标端缺失或源端不存在的文件当成删除动作
Preview changes勾选先查看同步清单,再确认真正下载的文件

WinSCP 的规则是:当 Modification time、File size、Checksum 都没有勾选时,已有文件会被视为相同,因此本次同步只会处理“源目录存在、目标目录不存在”的文件。这里的“源”就是远端目录,“目标”就是本地目录。

不要把“Existing files only”理解成“只同步已有文件”。它的含义是只处理两边都已经存在的文件,反而会过滤掉远端新文件。

先看预览清单,再确认下载动作

点击确定后,WinSCP 会先收集两个目录的差异。因为开启了 Preview changes,接下来会出现同步清单。正常情况下,清单中应主要出现远端独有的文件,动作是从远端下载到本地;本地已经存在的同名文件不应仅仅因为时间或大小差异出现在清单里。

WinSCP 原创同步清单界面说明图,展示远端新增文件进入下载清单而已有文件被排除
图2:预览清单的结果说明图,新增文件进入下载动作,已有文件被排除;不是运行截图。

确认清单时重点看三件事:文件名是否来自预期的远端目录,目标路径是否是正确的本地目录,动作是否全部为下载而不是删除。发现路径或方向不对时,取消清单返回对话框修正,不要直接按确认。

这套设置不会同步远端已有文件的后续更新

“只同步新增文件”与“同步新增和更新文件”是两个不同任务。上面的设置会把已经存在于本地的文件当作相同,即使远端版本后来变大或修改时间更新,也不会被本次规则下载。

如果你实际需要的是“远端新增文件加上远端更新文件”,应重新勾选合适的比较条件,通常先使用 Modification time;如果服务器时间戳不可靠,再结合 File size 或 Checksum,并先用 Preview changes 检查结果。WinSCP 官方文档特别提醒,本地与远端时间戳转换不正确时,可能出现重复传输或漏传。

如果想持续监视本地变更并自动反映到远端,应该看 Keep Remote Directory up to Date;它主要观察本地目录,不等于持续监听远端新增文件。远端到本地的定时拉取通常需要按间隔重复执行同步任务。

常见问题

为什么勾选 Existing files only 后没有下载远端新文件? 因为该选项会忽略目标目录中不存在的文件。想接收远端新增文件,应保持它关闭。

为什么已有文件仍然出现在预览清单? 先检查 Modification time、File size、Checksum 是否有勾选,再确认两边目录和文件名是否真的对应;还要检查文件名大小写及时间戳转换。

想让远端更新覆盖本地旧文件怎么办? 这已经不是“只同步新增文件”,需要重新选择比较条件,并在预览清单中确认更新方向;不要直接打开 Delete files。

最小可用配置可以记成一句话:Local/Left 选择远端到本地,模式用 Synchronize files,三个比较条件全关,Existing files only 和 Delete files 保持关闭,Preview changes 保持开启。这样才是“只接收远端新增文件”的可控做法。

声明:本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>