本文目录导读:

- rsync (Linux/macOS/Windows WSL)
- Robocopy (Windows 原生)
- Syncthing (跨平台图形化)
- FreeFileSync (Windows/macOS/Linux 图形化)
- Git (版本控制场景)
- 手动脚本(Python 示例)
- 最佳实践建议
要实现增量同步中只同步新增和修改的文件(即跳过未变化的文件),核心在于工具能识别文件的变化状态(如修改时间、大小、校验和),以下是几种常见工具的具体配置方法:
rsync (Linux/macOS/Windows WSL)
最经典的增量同步工具,默认行为就是只同步变化的部分。
# 基本命令(-a 归档模式保留权限,-v 显示详情,-u 跳过较新的文件) rsync -avu /源目录/ /目标目录/ # 更严格的基于校验和的同步(忽略时间戳,只比较内容) rsync -avc /源目录/ /目标目录/ # 带排除的同步(排除 .git 目录) rsync -avu --exclude='.git/' /源目录/ /目标目录/
关键参数:
-u:跳过目标目录中比源更新的文件(防止覆盖新文件)-c:使用校验和比较(更慢但更准确)--delete:删除目标中源不存在的文件(慎用)
Robocopy (Windows 原生)
Windows 自带的强大同步工具,支持多线程和增量模式。
# 仅同步新文件和修改的文件(/XO 排除旧文件) robocopy C:\源目录 D:\目标目录 /E /XO /R:3 /W:10 # 更严格的校验(/M 只复制有归档属性的文件) robocopy C:\源目录 D:\目标目录 /E /M /R:3 /W:10
关键参数:
/E:复制子目录(包括空目录)/XO:排除比目标更旧的文件/XC:排除时间戳完全一致的文件/NP:不显示进度(适合脚本)/R:3 /W:10:失败重试3次,等待10秒
Syncthing (跨平台图形化)
适合多设备实时同步,默认就是增量同步。
- 设置方法:添加文件夹后,在“高级设置”中确保 “文件版本控制” 设置为“无”(或根据需要配置)
- 自动检测文件变化:监控文件系统事件,只同步变更部分
FreeFileSync (Windows/macOS/Linux 图形化)
用户友好的图形工具,支持精准的增量同步。
- 在“同步设置”中选择 “镜像” 或 “更新”
- 比较方式选择 “文件时间和大小” 或
- 会自动跳过无变化文件,只复制新增/修改的文件
Git (版本控制场景)
如果文件是代码或文档,Git 的 commit 和 push 天然只传送变化:
# 查看变更(未提交的文件) git status # 提交并推送变更 git add -A git commit -m "增量更新" git push
手动脚本(Python 示例)
如果需要高度定制,可以用 Python 脚本实现精简增量同步:
import os
import shutil
import hashlib
def md5(file_path):
"""计算文件MD5"""
hash_md5 = hashlib.md5()
with open(file_path, "rb") as f:
for chunk in iter(lambda: f.read(4096), b""):
hash_md5.update(chunk)
return hash_md5.hexdigest()
def sync(src, dst):
"""只同步新增和修改的文件"""
for root, dirs, files in os.walk(src):
rel_path = os.path.relpath(root, src)
dst_dir = os.path.join(dst, rel_path)
os.makedirs(dst_dir, exist_ok=True)
for file in files:
src_file = os.path.join(root, file)
dst_file = os.path.join(dst_dir, file)
# 如果目标不存在或MD5不同,则同步
if not os.path.exists(dst_file) or md5(src_file) != md5(dst_file):
shutil.copy2(src_file, dst_file)
print(f"已同步: {src_file}")
sync("/path/to/source", "/path/to/destination")
最佳实践建议
- 先做一次全量同步,后续只用增量模式
- 设置合理的比较策略:一般文件修改时间和大小足够,敏感场景用校验和
- 注意权限和环境:Windows 建议用 Robocopy,Linux 用 rsync
- 先测试:用
--dry-run(rsync)或/L(Robocopy)查看会同步哪些文件而不实际执行
根据你的具体需求(跨平台、命令行/图形化、性能要求等),选择最合适的工具即可。
标签: 新增修改文件
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播