一个高效的重复文件检测和清理工具,帮助您快速找到并管理系统中的重复文件,释放宝贵的存储空间。
- 🚀 高性能扫描:基于 MD5/SHA256 算法的快速文件比较
- 🌐 Web 界面:直观的 Web 管理界面,支持可视化操作
- 📁 多格式支持:支持所有文件类型的重复检测
- 🔄 批量操作:支持批量删除、移动和备份重复文件
- 💾 内存优化:智能内存管理,支持大文件和大量文件扫描
- 🐳 容器化部署:提供 Docker 镜像,一键部署
- 📊 详细报告:生成详细的扫描报告和统计信息
- 🔒 安全可靠:文件操作前自动备份,支持撤销操作
- 🎯 智能差异显示:重复文件名差异高亮,快速识别细微差别
# 克隆项目
git clone https://github.com/cilidm/duplicate_file.git
cd duplicate_file
# 构建镜像
docker build -t duplicatehunter:latest .
# 运行容器
docker run -d \
--name duplicate-hunter \
-p 8080:8080 \
-v /path/to/scan:/app/data \
duplicatehunter:latest
# 访问 Web 界面
open http://localhost:8080# 克隆项目
git clone https://github.com/cilidm/duplicate_file.git
cd duplicate_file
# 安装依赖
pip install -r requirements.txt
# 启动 Web 服务
python start.py web
# 或使用命令行工具
python start.py scan /path/to/directory- 选择扫描目录:在 Web 界面中选择要扫描的目录
- 配置扫描选项:设置文件大小限制、文件类型过滤等
- 开始扫描:点击开始按钮,实时查看扫描进度
- 查看结果:浏览重复文件列表,智能差异高亮显示
- 执行操作:选择删除、移动或备份重复文件
# 基本扫描
python cli.py --scan /home/user/Documents
# 指定算法和输出格式
python cli.py --scan /data --algorithm sha256 --output json
# 批量删除重复文件(保留最新的)
python cli.py --scan /data --auto-delete --keep newest
# 生成详细报告
python cli.py --scan /data --report --output-file report.html# config.yaml
scan:
algorithm: "md5" # md5, sha1, sha256
min_size: 1024 # 最小文件大小(字节)
max_size: null # 最大文件大小(字节)
extensions: # 文件扩展名过滤
- ".jpg"
- ".png"
- ".mp4"
exclude_dirs: # 排除目录
- ".git"
- "node_modules"
- "__pycache__"
performance:
threads: 4 # 扫描线程数
chunk_size: 8192 # 文件读取块大小
memory_limit: "1GB" # 内存使用限制
web:
host: "0.0.0.0"
port: 8080
debug: false| 文件数量 | 总大小 | 扫描时间 | 内存使用 |
|---|---|---|---|
| 10,000 | 1GB | 30s | 50MB |
| 100,000 | 10GB | 5min | 200MB |
| 1,000,000 | 100GB | 45min | 800MB |
测试环境:Intel i7-8700K, 16GB RAM, SSD
DuplicateHunter/
├── app/
│ ├── __init__.py
│ ├── scanner.py # 核心扫描引擎
│ ├── hasher.py # 文件哈希计算
│ ├── web/ # Web 界面
│ │ ├── app.py
│ │ └── templates/
│ └── utils.py # 工具函数
├── tests/ # 测试文件
├── examples/ # 使用示例
├── start.py # 快速启动脚本
├── cli.py # 命令行工具
└── config.yaml # 配置文件
- 快速预筛选:首先比较文件大小
- 哈希计算:对相同大小的文件计算哈希值
- 分块读取:大文件采用分块读取,避免内存溢出
- 智能缓存:缓存已计算的哈希值,提高重复扫描效率
- MD5:速度快,适合快速扫描
- SHA1:平衡速度和安全性
- SHA256:最高安全性,适合重要文件
# 克隆项目
git clone https://github.com/cilidm/duplicate_file.git
cd duplicate_file
# 使用 Docker Compose 启动
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down- 直观的扫描配置:支持目录选择、算法选择、文件过滤等
- 实时进度显示:扫描过程中显示实时进度和统计信息
- 智能结果展示:重复文件差异高亮显示,便于快速识别
- 批量操作支持:支持批量删除和文件管理
- 多格式报告:支持 HTML、JSON、CSV 格式报告导出
- 操作确认:所有删除操作需要用户确认
- 自动备份:删除前自动创建备份
- 操作日志:记录所有文件操作历史
- 权限检查:验证文件操作权限
- 撤销功能:支持撤销最近的操作
我们欢迎所有形式的贡献!请查看 CONTRIBUTING.md 了解详细信息。
# 克隆项目
git clone https://github.com/cilidm/duplicate_file.git
cd duplicate_file
# 方式一:使用设置脚本(推荐)
python setup_dev.py
# 方式二:手动安装
pip install -r requirements.txt
pip install pytest black flake8 isort
# 运行测试
pytest tests/
# 启动开发服务器
python start.py web- 支持网络驱动器扫描
- 添加文件预览功能
- 实现增量扫描
- 支持云存储集成
- 添加 API 接口
- 移动端适配
| 特性 | DuplicateHunter | dupeGuru | Duplicate Cleaner |
|---|---|---|---|
| Web 界面 | ✅ | ❌ | ❌ |
| 命令行 | ✅ | ✅ | ❌ |
| Docker 支持 | ✅ | ❌ | ❌ |
| 批量操作 | ✅ | ✅ | ✅ |
| 多算法支持 | ✅ | ✅ | ❌ |
| 智能差异显示 | ✅ | ❌ | ❌ |
| 开源免费 | ✅ | ✅ | ❌ |
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
感谢所有贡献者和用户的支持!
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
- 📧 Email: 通过 GitHub Issues 联系
⭐ 如果这个项目对您有帮助,请给我们一个 Star!