Czkawka 完全指南:免费开源的多平台清理工具,快速找出重复文件、相似图片与空文件夹
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
Czkawka 是一款用 Rust 编写、免费且开源的多平台文件清理工具,覆盖 Windows、macOS、Linux 与 Android。它能通过一次扫描找出重复文件、相似图片、相似视频、空文件夹和临时文件,以缓存加速重复扫描、全程离线不收集数据,适合想安全释放磁盘空间的新手和普通用户。
Czkawka 是什么:一个 Rust 编写的多端文件清理核心
Czkawka 由一个核心库czkawka_core与四个可独立运行的前端组成:Slint 图形界面Krokiet、经典 GTK 4 界面Czkawka、命令行czkawka_cli,以及面向 Android 的Cedinia。核心用 Rust 编写,官方称几乎不含unsafe代码,并依靠多线程与感知哈希等算法提升扫描速度;所有处理在本地完成,程序不访问网络、不采集任何用户信息或统计。项目在各前端间共享一份缓存(哈希、缩略图、分析结果),第二次扫描因此明显快于首次。授权方面,Krokiet 与 Cedinia 因 Slint 采用 GPL-3.0,核心与 GTK/CLI 为 MIT,图像与音频素材为 CC BY 4.0。
四类典型任务 🧭
释放磁盘空间
场景问题:同一文件被复制到多个位置,下载与备份目录堆满大文件,长期积累的临时文件与空目录悄悄占用空间。
对应功能:
- 重复文件——按文件名(
NAME)、大小(SIZE)、大小+名称(SIZE_NAME) 或内容哈希(HASH) 匹配,默认HASH最可靠,可选BLAKE3/XXH3/CRC32三种哈希。 - 大文件——列出指定数量的最大文件,加参数可反查最小文件。
- 空文件 / 空文件夹——找出 0 字节文件与不含任何内容的目录。
- 临时文件——按内置或自定义扩展名清单匹配
.tmp、.bak、.crdownload等。
操作要点:删除重复文件前先用 dry-run(-Q)预览保留策略(如AEN保留最新),确认无误后再删除或移到回收站(-y)。
整理照片与视频
场景问题:相册里存在同一张照片的不同尺寸、裁剪或加水印版本;视频库里躺着重复录制与带黑边的片段。
对应功能:
- 相似图片——感知哈希默认
Gradient,可选Mean/Blockhash等,max-difference(0–40)控制严格度,可开启镜像/旋转的几何不变性。 - 相似视频——按时间窗口对视频帧做签名,容差 0–20 可调,运行时依赖
ffmpeg。 - 视频优化——转码到
h265/av1/vp9,或裁剪黑边、静态边内容。 - Exif 清理——移除 jpg/png/webp/avif/heic 等格式中的 Exif 元数据(含 GPS 位置)。
操作要点:图片比对可从--max-difference 5、hash-size 16起步再微调;视频相关工具需先安装ffmpeg。
音乐库去重
场景问题:同一首歌来自不同来源,码率、标签各不相同,却长期并存。
对应功能:提供TAGS(比较标题、艺术家、年份、码率、流派、时长等标签)与CONTENT(分析音频内容指纹)两种模式。
操作要点:CONTENT模式更慢,但能识别标签缺失或互相矛盾的副本;可用-z指定参与比对的标签字段。
排查文件健康问题
场景问题:部分文件打不开、扩展名与真实内容不符、文件名带特殊字符、链接指向已被删除的目标。
对应功能:
- 损坏文件——校验 PDF、音频、图片、压缩包、字体、JSON/XML 等是否能被对应库正确打开。
- 错误扩展名——按魔数判断真实类型,可自动改为正确扩展名。
- 坏文件名——检测大写扩展名、emoji、首尾空格、非 ASCII 字符、连续符号,并支持自动改名。
- 无效符号链接——找出指向不存在目标或形成循环链的链接。
操作要点:损坏文件检测存在误报可能,删除前需人工确认。
四个前端,按场景挑选
| 前端 | 界面 / 形态 | 更适合 | 平台 |
|---|---|---|---|
| Krokiet | Slint 图形界面 | 桌面日常使用(官方推荐) | Linux / Windows / macOS |
| Czkawka GUI | GTK 4 图形界面 | 习惯传统桌面、GTK 用户 | Linux / Windows / macOS(12.0 为最后版本) |
| Cedinia | Android 触控界面 | 手机本地清理 | Android |
| czkawka_cli | 终端 | 脚本、CI、服务器 | Linux / Windows / macOS |
安装与首次扫描:三个平台的最小路径 ✅
各平台安装方式:
- 预编译二进制:支持 Windows 10/11、macOS、Ubuntu 22.04/24.04,从官方发布渠道下载即可运行。
- Flatpak(经典 GTK 版):
flatpak install flathub com.github.qarmin.czkawka - 源码编译:
cargo install krokiet --locked - 相似视频依赖 ffmpeg:Linux 用
sudo apt install ffmpeg,macOS 用brew install ffmpeg。
最小可用路径(以 Krokiet 为例):
- 启动 Krokiet,选择目标工具,例如“重复文件”。
- 添加要扫描的目录;把备份目录标记为“参考路径”,只参与比对、绝不会被删除。
- 设置最小文件大小,排除不需要扫描的目录与扩展名。
- 点击扫描,等待分组结果。
- 预览确认无误后,选择删除、移到回收站或创建硬链接。
CLI 与自动化:把扫描写进脚本
命令行前端把每个工具暴露为子命令,便于脚本与 CI 复用:
czkawka_cli dup -d /home/user/Documents czkawka_cli dup -d /home/user/Documents -D AEN -Q czkawka_cli image -d /home/user -x IMAGE -f results.txt czkawka_cli empty-folders -d /home/user通用参数贯穿各工具:-d指定目录、-e排除目录、-E排除 glob 模式、-x限定扩展名(支持IMAGE/VIDEO/MUSIC/TEXT宏)、-f/-C/-p分别输出文本或紧凑/格式化 JSON、-T限制线程、-H关闭缓存。
自动化上可利用退出码:0无匹配、11发现文件、1出错;配合-W可让“发现文件”不被当作错误,便于写入 cron 每日生成 JSON 报告。-r参考目录能在去重时保护母版备份,视频与图片的相似度、哈希算法等参数也可按需收紧或放宽。
适合谁、不适合谁:与同类工具的取舍
| 维度 | Krokiet | Czkawka GUI | Cedinia | czkawka_cli |
|---|---|---|---|---|
| 实现语言 | Rust | Rust | Rust | Rust |
| 界面框架 | Slint | GTK 4 | Slint | 无(终端) |
| 运行平台 | Linux/Win/macOS | Linux/Win/macOS | Android | Linux/Win/macOS |
| 移动端 | — | — | 支持 | — |
| 离线运行 | 是 | 是 | 是 | 是 |
面向普通桌面用户,Krokiet 提供一致的跨平台体验;偏好 GTK 的传统用户可留在 Czkawka GUI,但它已停止出新版本;手机上选 Cedinia,需要脚本化、无图形界面的场景则用 CLI。与 DupeGuru、FSlint、BleachBit 相比,Czkawka 的优势在于相似视频与按音频内容比对这两类较重的工具,而 FSlint 等仍在包管理、冗余空白等小众检查上更全;取舍取决于你更看重媒体比对还是系统级杂项检查。
数据安全与常见误区 ⚠️
- 先 dry-run,再删除:重复与损坏检测都可能误判,先用
-Q预览将要执行的操作。 - 用参考路径保护母版:把原始备份设为参考路径,去重时只清理副本、不动原片。
- 缓存可重建:缓存跨前端共享,换盘或迁移后若加载缓慢,可编辑 JSON 缓存或删除后重新扫描生成。
- 备份习惯:批量删除或自动改名前,对重要目录做一次快照。
- 两个常见误区:把“相似图片”当成“完全重复”(相似≠字节相同);用
NAME/SIZE当作最终判据——最终判定应使用HASH。
延伸资源
- 官方文档:instructions/Instruction.md
- CLI 手册:instructions/Instruction_CLI.md
- 核心源码:czkawka_core/src/
- 各工具实现:czkawka_core/src/tools/
- 更新日志:Changelog.md
从一张磁盘到一整个媒体库,Czkawka 用同一套 Rust 核心覆盖了桌面与移动端,帮你把重复与无用的文件安全地清出去。
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考