📦 file-sync — 文件同步
v1.0.0使用 MD5 哈希和版本历史双向同步两个文件夹,检测冲突,保留删除操作,并将冲突存档以供手动解决。
运行时依赖
安装命令
点击复制技能文档
file-sync sync.py 是一款双向文件同步工具。它让两个目录保持同步(如 PC ↔ USB),利用版本历史检测冲突,并通过 .trash/ 安全处理删除。
用法 python sync.py
参数 local_folder — 待同步的第一个目录 remote_folder — 待同步的第二个目录 device_name — 本设备标签(用于冲突文件名,如 "PC1"、"USB")
同步方向 工具完全对称——任一目录均可视为本地或远程。
同步规则 情况 → 行为 一侧新增文件 → 复制到另一侧 仅一侧修改 → 用更新版本覆盖另一侧 同时修改(冲突) → 两份均移入 .conflict/,不覆盖 一侧删除,另一侧保留 → 冲突(两份都保留在 .conflict/) 两侧均删除 → 直接移除,不进入 .trash 一侧删除,另一侧未改 → 删除动作经 .trash/ 同步到另一侧
自动忽略的特殊目录 匹配以下名称的文件/文件夹将被排除:.conflict、.trash、.sync_logs
状态与历史 状态保存在各目录下的 .sync_state.json。每个文件维护最多 10 条 MD5 哈希历史。冲突检测通过历史查找共同祖先: 无共同祖先 → 冲突 一侧与祖先相同 → 自动合并 两侧均偏离祖先 → 冲突
冲突解决 检测到冲突时,两个版本被复制到 local_folder/.conflict/,命名格式: filename_LOCAL__ filename_REMOTE__ 原文件保持不变。手动比对合并后,从 .conflict/ 删除即可。
删除安全 被删文件移至 .trash/.,而非永久删除。
日志 日志写入 local_folder/.sync_logs/sync_.log,含时间戳、动作类型(INFO/CONFLICT/TRASH/ERROR)及汇总计数。
工作流示例 # 将 PC1 与 U 盘同步(U 盘挂载为 E:) python sync.py C:\Users\PC1 E:\ PC1
# 在 U 盘工作后同步回 PC python sync.py E:\ C:\Users\PC1 USB
捆绑资源 scripts/sync.py — 同步脚本(可拷贝到项目或直接调用) references/behaviors.md — 详细行为说明、边界案例与设计依据