📦 file-sync — 文件同步

v1.0.0

使用 MD5 哈希和版本历史双向同步两个文件夹,检测冲突,保留删除操作,并将冲突存档以供手动解决。

0· 0·0 当前·0 累计
0

运行时依赖

无特殊依赖

安装命令

点击复制
官方npx clawhub@latest install file-sync
镜像加速npx clawhub@latest install file-sync --registry https://cn.longxiaskill.com

技能文档

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 — 详细行为说明、边界案例与设计依据

数据来源ClawHub ↗ · 中文优化:龙虾技能库