# 简存 **Repository Path**: deepin20/EcoDupe ## Basic Information - **Project Name**: 简存 - **Description**: EcoDupe(简存)是一款专为 Linux 桌面(尤其适配 Deepin/UOS)设计的图形化重复文件清理工具,采用 Python + PyQt5 构建,兼顾性能与易用性。 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-06 - **Last Updated**: 2026-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EcoDupe(简存) 高效的重复文件查找与清理工具,助力释放磁盘空间,提升存储效率。 ## 简介 在日常使用中,各种重复文件(如照片副本、文档备份、缓存等)会悄然占用大量磁盘空间。**EcoDupe(简存)** 是一款专为 Linux 桌面(尤其适配 Deepin/UOS)设计的图形化重复文件清理工具,采用 Python + PyQt5 构建,兼顾性能与易用性。 - 支持**精确**(SHA‑256)和**快速**(大小+头部哈希)两种扫描模式,满足不同场景需求。 - 内置**智能缓存**,重复扫描极速响应。 - 提供**多进程并行哈希计算**,充分利用多核 CPU 提升扫描速度。 - 清理方式灵活:可移至**回收站**或替换为**硬链接**(保留所有路径但共享数据块)。 - 支持**排除目录**、**扩展名过滤**、**保留策略**(保留最新、最旧、首个等)。 - 深色/浅色主题,系统托盘,窗口自由缩放。 ## 特性 - 🚀 **双扫描模式**:精确(完整哈希)与快速(大小+头部) - 💾 **智能缓存**:SQLite 缓存,重复扫描速度提升 10 倍以上 - ⚡ **多进程加速**:自动启用多核并行哈希计算 - 🗑️ **安全清理**:支持回收站(`gio trash` / 自定义回退)和硬链接替换 - 🎯 **灵活策略**:保留第一个/最后一个/最新/最旧文件 - 🧹 **过滤与排除**:扩展名过滤,目录排除(支持符号链接控制) - 🌗 **主题切换**:内置深色/浅色主题,自动跟随系统(可手动切换) - 🖥️ **系统托盘**:常驻托盘,快速启动扫描 - 📦 **开箱即用**:提供 Debian 包(.deb)和 AppImage,一键安装 ## 安装 ### 1. 通过 Debian 包安装(推荐) ```bash # 下载 ecodupe__amd64.deb sudo dpkg -i ecodupe_*.deb # 若提示依赖缺失,执行: sudo apt-get install -f ``` ### 2. 从源码运行 ```bash # 克隆仓库 git clone https://github.com/yourusername/ecodupe.git cd ecodupe # 安装 Python 依赖(建议使用虚拟环境) pip install -r requirements.txt # 运行 python -m ecodupe ``` ### 3. 使用 AppImage 下载 `Ecodupe-x86_64.AppImage`,赋予执行权限后直接运行: ```bash chmod +x Ecodupe-x86_64.AppImage ./Ecodupe-x86_64.AppImage ``` ## 使用说明 ### 图形界面 1. **选择扫描目录**:通过下拉菜单快速定位常用目录(桌面、下载等),或选择“自定义…”。 2. **选择扫描模式**: - **精确模式**:完整文件 SHA‑256 哈希,最准确(耗时较长)。 - **快速模式**:基于文件大小和头部 1KB 哈希,速度极快。 3. **扩展名过滤**(可选):输入扩展名(如 `.jpg,.png,.mp4`),仅扫描指定类型。 4. **开始扫描**:点击主按钮“开始一键排重”,进度显示在按钮上。 5. **查看结果**:扫描完成后显示重复文件组数、可节省空间和文件总数。可点击“清理冗余文件”并选择保留策略和操作方式(回收站/硬链接)。 6. **过滤结果**:在详细列表上方输入关键词,实时过滤显示的文件组。 7. **回收站**:点击“打开回收站”可查看已删除文件。 ### 命令行模式(Headless) EcoDupe 也支持命令行操作,便于脚本化或远程调用: ```bash # 扫描并导出结果 python -m ecodupe --scan /path/to/dir --export result.json # 扫描并自动清理(保留最新文件,硬链接替换) python -m ecodupe --scan /path/to/dir --clean --keep keep_newest --action hardlink ``` 更多选项请使用 `--help` 查看。 ## 设置选项 通过主窗口右上角的齿轮图标(⚙)打开设置对话框,可配置: - **排除目录**:扫描时跳过指定目录及其子目录。 - **符号链接**:是否跟随符号链接进入目标目录。 - **界面主题**:深色 / 浅色。 ## 开发与构建 ### 构建 Debian 包 ```bash ./scripts/build_deb.sh ``` 生成的 `.deb` 包位于 `build/` 目录下。 ### 构建 AppImage ```bash pyinstaller ecodupe.spec ./appimagetool-x86_64.AppImage Ecodupe.AppDir ``` ### 运行测试 ```bash pytest tests/ ``` ## 贡献 欢迎任何形式的贡献!请遵循以下流程: 1. Fork 本仓库。 2. 创建功能分支 (`git checkout -b feature/your-feature`)。 3. 提交变更 (`git commit -am 'Add some feature'`)。 4. 推送到分支 (`git push origin feature/your-feature`)。 5. 开启 Pull Request。 ## 许可证 本项目基于 **GNU General Public License v3.0** 开源。 --- **EcoDupe** — 让重复无处可藏,让存储更清爽。