Czkawka 磁盘清理完整指南:从重复文件扫描到相似图片分组
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
如果你的磁盘里散落着好几份同一份报告的副本,相册里同一张合影留着好几个版本,Czkawka 重复文件清理值得放进工具箱。它是一款用 Rust 编写的开源磁盘清理工具:重复文件、相似图片、空文件夹、损坏文件这些常见垃圾,全部交给同一个扫描引擎处理,Windows、macOS、Linux 都能跑,没有广告,不联网,不收集任何数据。
值不值得用:先核对三个标准
装之前先看三个维度。
- 性能:多线程 + Rust,几乎不含 unsafe 代码。十万文件量级的目录全量扫一遍约 2 分钟,内存占用通常不到 50MB。
- 隐私:翻一遍依赖清单,里面没有 HTTP、遥测类库,没有更新检查、没有统计上报,所有计算都在本地离线完成。
- 维护状态:项目活跃,且带缓存机制——同一批目录第二次扫描,已算过的哈希直接复用,速度明显快于第一次。
缓存只存哈希、缩略图这类算好的元数据,不存文件内容,量再大的库也就几百 MB,不会反过来吃掉磁盘。另有一个容易忽略的好处:缓存是所有前端共享的,你用 GUI 扫过的结果,CLI 再扫也能直接受益。
选哪个版本:Krokiet、GTK、CLI 与 Android 版
项目有 4 个前端,背后都是同一个czkawka_core库,所以功能完全对齐:
| 前端 | 界面技术 | 平台 | 当前状态 |
|---|---|---|---|
| Krokiet | Slint | Windows / macOS / Linux | 主推版本,新功能都在这里 |
| Czkawka GUI | GTK 4 | Windows / macOS / Linux | 12.0 为最终版本,不再提供新二进制 |
| Cedinia | Slint | Android | 实验版,可直接扫手机相册与下载目录 |
| czkawka_cli | 终端 | Windows / macOS / Linux | 面向脚本与定时任务 |
新安装建议直接选 Krokiet:单文件可执行程序,没有运行时依赖,三端行为一致。GTK 版停在 12.0,主要原因是 GTK 4 在 Windows、macOS 上的移植存在窗口透明化、HiDPI 文字发虚等长期问题,Krokiet 正是为了绕开这些才做的。Cedinia 是 Android 实验版,手机上直接扫相册和下载目录,但没有视频工具(Android 上缺 ffmpeg)。
🧹 安装与第一次扫描:用哈希找出重复文件
预编译二进制是官方主推的安装方式,从项目 Releases 页下载对应平台与架构的版本。Linux 与 macOS 给执行权限后直接运行,Windows 双击 exe 即可:
chmod +x linux_krokiet_x86_64 ./linux_krokiet_x86_64macOS 首次打开会被系统拦下,右键选"打开"再确认一次就能正常使用。如果只想在命令行里用,可以用winget install Czkawka或brew install czkawka装 CLI。
实操就四步:把要扫的目录添加进列表,把系统目录、虚拟磁盘塞进排除项;在设置里设一个最小文件尺寸,让零碎小文件不参与比对;点"扫描"。结果出来后,重复组按组排列,先在预览区把每组过一眼,再决定批量删除还是移动到目标文件夹。
查重本身是一条三段式哈希流水线:先按文件大小精确分组,再对每个文件的头尾算一个快速的"预哈希",把绝大部分不可能重复的文件筛掉,最后才对同尺寸、同预哈希的候选做完整 Blake3 哈希。这样快,而且"同名不同内容"绝不会混进同一组——内容哈希才是最终判词。首次扫描会把结果写进缓存,第二次只重算发生变化的文件。
相似照片、视频、音乐怎么分组
难啃的情况是内容相近但字节不同:旅行回来的 5000 张照片,同一张合影存了 6 个版本——不同分辨率、加了水印、裁剪过、旋转过。"相似图片"工具用感知哈希来归组:它不看文件字节,而是把图片压缩成一个小指纹,再量两个指纹之间的"距离",距离越近图越像。
"最大差异"参数控制分组松紧:越小越严格,越大越宽松,默认阈值对付缩略图和原图够用。想连镜像、旋转版本一起抓住,打开"几何不变性",代价是扫描变慢。
视频走同一套思路:抽帧后比对画面,这一步需要先装 ffmpeg(Linux:sudo apt install ffmpeg,macOS:brew install ffmpeg)。音乐分两种模式,按标签(艺术家、专辑、标题)匹配快,按音频内容比对更彻底。清理时每组挑一张最清晰的留下,其余归档或删掉;拿不准的先翻预览再动手。
其余工具也值得一提:空文件夹、空文件、临时文件、大文件、损坏文件、无效符号链接、错误扩展名(内容和扩展名对不上)、坏文件名、Exif 元数据清理,还有视频优化器——能裁掉首尾静止片段并把视频转成更省空间的编码格式。
🛠️ 命令行自动化:三行脚本
czkawka_cli与 GUI 共用全部扫描逻辑,适合写进定时脚本:
czkawka_cli dup -d ~/Downloads -s HASH -f duplicates.txt czkawka_cli empty-folders -d ~/Documents czkawka_cli big -d ~/ -n 20几个实用点:
- 删除类操作加
-Q先做演练,只列出会被删的文件,不动真格; -D指定保留策略,比如-D AEN表示每组留最新的、删其余;- 退出码有讲究:0 是没扫到,11 是扫到了,1 是出错,脚本可以据此分支。
-r参数适合保护原件:它把目录标记为"参考目录",参与比对但永不删除。比如扫下载目录时让-r指向备份目录,备份那份就安安稳稳。每个子命令都带--help,过滤扩展名、排除目录、输出结果文件等参数都能查。
避坑清单与同类工具对照
几个容易踩的点:
- 先预览再确认:删除策略(
-D)决定每组留哪个,官方流程是先用-Q列出清单、人工过目再执行;"损坏文件"工具存在误报,删之前手动验证一下文件能不能正常打开。 - 先排除再扫描:系统目录、备份盘、网络路径提前放进排除列表,又快又安全。
- 硬链接有边界:硬链接只在同一磁盘卷内有效,跨分区会直接失败(原文件不受影响),跨盘场景请改用移动。
- 最小尺寸是隐形门槛:重复扫描默认跳过 16KB 以下的文件,想连小文件一起扫,需要到设置里调低阈值。
把 Czkawka 和其他清理工具摆在一起,差异点比较直观:
| Czkawka(Krokiet) | DupeGuru | FSlint | |
|---|---|---|---|
| 实现语言 | Rust,多线程 | Python | Python |
| 平台 | Win / macOS / Linux / Android | Win / macOS / Linux | 仅 Linux |
| 相似图片分组 | 支持 | 支持 | 不支持 |
| 视频 / 音乐内容比对 | 支持 | 不支持 | 不支持 |
| 空文件夹、临时文件、无效符号链接 | 支持 | 不支持 | 支持 |
| 联网、遥测 | 无 | 无 | 无 |
| 开发状态 | 活跃维护 | 更新缓慢 | 已停滞 |
想上手的话,先拿"下载"这类小目录试一次,确认分组结果和保留策略都符合预期,再去碰大的。参数细节与原理说明见仓库里的使用总文档、CLI 参数参考和FAQ。
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考