对比两个文件夹按视频名称找重复,并把匹配文件加序号复制(-c 移动)到当前目录,方便人工比对封面;脱序还原文件名。
compare 文件夹A 文件夹B # 找重复,并复制匹配文件到当前目录(加序号前缀)
compare 文件夹A 文件夹B -c # 找重复,并移动匹配文件到当前目录(加序号前缀)
compare 文件夹A 文件夹B -o # 只找重复,生成 txt 文件
compare # 脱序:还原当前目录中带序号前缀的文件名
compare -h-c与-o不能同时使用;文件夹参数顺序可互换- 找重复不删除任何文件;移动 = 同盘 rename / 跨盘先复制再删源,不会丢文件
两个文件夹按相同规则解析文件名,递归扫描子文件夹,支持扩展名 .mp4 .flv .mkv .webm .mov .avi:
| 来源 | 格式 |
|---|---|
| bili-sync-fav | up-标题 / up1,up2-标题,分P:标题(N)-分P名(分P名自动排除) |
| 猫抓 | 标题_哔哩哔哩_bilibili.mp4 |
| NA 等工具 | 标题_NA.mp4 / 标题_数字.mp4 |
| 分辨率后缀 | 标题-(2160p25).mp4 / 4K-(1908p30).mp4 |
| 手动改名 | 标题.mp4 |
输出到运行目录:
重复视频名称.txt— 重复名称每行一个,顺序与明细一致(多文件 → 疑似公共部分 → 单文件)重复视频明细.txt— 多文件 / 疑似 / 单文件三类,含路径与相似度- 分P 条目(
标题(1)-分P名等)若其文件已全部被更短的公共名称(多文件条目)覆盖,自动合并只保留公共名称,避免复制/移动时前一名称拿走全部文件、后续名称扑空(摘要会显示「合并重复条目」)
- 匹配同一名称行的文件共用序号(行号,3 位补零,>999 自动加宽),
A/B标记来源:001A紫颜-小仙紫-“和花树上的仙子对视一眼便丢了魂魄…”(1)-….mp4、001B“和花树上的仙子对视一眼便丢了魂魄…”_NA.mp4 - 子文件夹中的文件拼上相对路径(
_连接),避免与父文件夹同名文件撞名:001B竖屏_谁能拒绝这样的喵系萌妹捏?_NA.mp4 - 匹配所有文件(封面图一并拷贝便于比对);目标已存在则跳过,绝不覆盖;处理时终端显示进度条(stderr,管道/重定向时自动关闭)
只去掉开头 数字[A|B] 前缀,保留拼上的子文件夹部分(还原后同名文件不会再次撞名);非该前缀开头的文件不动;只处理当前目录顶层文件。
cargo build --release # 二进制: target/release/comparesrc/main.rs— 参数分发 + 找重复src/cm.rs— 复制/移动/脱序找重复.py— Python 版(python3 找重复.py不传参时用内置默认路径)- 纯标准库、零依赖;release profile 已按体积优化