磁盘又爆满了?用 Czkawka/Krokiet 把重复文件一网打尽的完整指南
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
周六下午,你想把刚拍的照片导出到电脑里慢慢欣赏,屏幕上却弹出一行刺眼的提示:"磁盘空间不足"。
这不是个例。照片库越攒越大、下载文件夹里躺着几十个"副本 (2).zip"、视频收藏反复转码存档、旧手机备份散落各处……当存储空间被这些看似不起眼的冗余文件一点点蚕食殆尽,我们才惊觉:真正撑爆磁盘的,往往不是哪一部大作,而是成千上万份"长得一样"的文件。
这就是本篇文章的主角——Czkawka 与它的新一代图形界面 Krokiet——要解决的问题。它们是一套完全免费、开源、无广告、几乎全内存安全的跨平台文件清理工具,用十几把"手术刀"帮你把磁盘里的重复文件、空文件夹、相似图片、临时垃圾一次找齐。下面这份完整指南,会从"为什么会变成这样"讲到"怎么安全地清理",让你 20 分钟内学会自己动手给电脑做一次"瘦身体检"。
第一章:那个让人抓狂的下午,以及它背后的三个真相
让我们把时间拨回你磁盘爆满的那个下午。你在"我的电脑"里翻来翻去,想找出是谁吃掉了 200GB,结果发现:看什么都像垃圾,又看什么都舍不得删。
真相一:重复文件比你想象的多。一份 PPT 通过微信、邮箱、U 盘各传了一遍,就是三份;手机照片自动备份到电脑后又被手动拷进新文件夹,就是双份。它们文件名可能还带点差别("报告"、"报告_最终版"、"报告_最终版2"),光靠肉眼根本认不全。
真相二:真正吃空间的不只是"重复文件"。还有分辨率相同、肉眼几乎无差别的相似图片;转码后留在旧编码里的视频;几百个空文件夹;比想象中大得多的临时文件;以及一整套已经指向"不存在"的失效快捷方式。它们各自只占一点点,加起来却能吃掉好几个 GB。
真相三:手动排查在数据量面前毫无胜算。当你面对上万个文件,逐个点击比对是不现实的。系统自带的搜索能按名称找,却认不出"内容相同但名字不同"的文件;市面上很多清理工具又只解决单点问题——找重复的不管相似图片,管图片的不管音乐。
所以,你需要的不是一把"小螺丝刀",而是一整套工具箱。
第二章:从"打嗝"到"炸肉丸":这个工具家族是怎么来的
先介绍一下名字。Czkawka是波兰语"打嗝"的意思,作者取这个名字,据说就是想知道不同国家的人会怎么念它;而Krokiet是波兰语的"炸肉丸",是作者给自己新一代前端起的名字——理由很直白:他爱吃肉馅蘑菇的波兰炸肉丸。名字听着怪,但功能一点都不含糊。
项目在功能上分成了四个"前端",共享同一颗心脏czkawka_core(一个用 Rust 写成的核心库):
| 前端 | 面向人群 | 技术框架 |
|---|---|---|
| Krokiet | 桌面用户(Windows / macOS / Linux) | Slint |
| Czkawka GUI | 老用户(GTK 版,12.0 后停止出新版) | GTK 4 |
| Czkawka CLI | 命令行、脚本、自动化 | 终端 |
| Cedinia | Android 手机用户 | Slint |
你可能好奇:为什么明明有成熟的 GTK 图形界面,作者还要另起炉灶做 Krokiet?答案写在它的官方文档里:GTK 在 Windows 和 macOS 上表现不稳定、编译和跨平台打包极其繁琐,光是动态链接库的版本就能把人逼疯。而基于 Slint 的 Krokiet 追求的是"下载即用"——单个可执行文件,几乎不需要额外依赖,在所有平台上体验一致。
如果你用的是手机,Cedinia 则提供了触屏友好的 Android 版本,把大部分核心工具带到了移动端。
第三章:14 把"手术刀":每个清理工具能帮你解决什么
打开 Krokiet 左侧的工具列表,你会看到 14 个功能。它们听起来很多,其实可以按"找冗余、抓相似、清垃圾、修病号"四类快速记住。
揪出"长得一模一样"的文件:重复文件检测的三道关卡
这是整个项目最核心的功能。它支持四种比对方式——按文件名、按大小、按文件名+大小、按内容哈希,默认用最可靠的内容哈希法,也就是 BLAKE3。
哈希校验的过程可以理解成一次"证件查验":
- 先比个头:文件大小都不一样,肯定不是重复的,直接跳过,不用浪费时间;
- 再比头尾:对可疑文件先快速读开头和结尾一小段(这就是文档里说的 prehash 预哈希),快速排除绝大多数"长相不同"的家伙;
- 最后逐字核对:只剩下高度可疑的候选,才做完整全文哈希,确保结果百分之百准确。
三层递进,让扫描既快又准。找到的重复组会以分组形式列出来,你可以按"保留最新 / 保留最旧 / 保留最大 / 保留最小"等策略一键勾选,剩下的交给回收站。
认出"不是双胞胎的双胞胎":相似图片识别
如果只是完全一样的文件,普通工具也能查;但照片场景往往是——同一张图被压缩过、改过分辨率、加过水印、甚至翻转了方向。这时候就得靠感知哈希(perceptual hash)出场了。
感知哈希的思路很生活化:它不是逐字节比对,而是把图片"降维"成一个特征指纹,内容越像,指纹越接近。就像你看一对双胞胎,不需要数他们每根头发,扫一眼五官就能判断"这俩八成是一家人"。你可以调节灵敏度(比如把最大差异值调低到 0–3 去抓"压缩后的小图",或调到 10–20 去抓"加了水印的转载图"),还可以开启几何不变性,让镜像、旋转 90 度的图也无所遁形。搜索结果右侧还有并排预览面板,方便你亲眼确认再动手。
视频、音乐也有"替身"
- 相似视频:默认按画面比对,采样视频帧、打上时间窗口逐段比较;也可以切换到音频指纹模式,专治"同一部片子换了封装格式、改了码率"这类问题。需要说明的是,这个功能要求系统装有 FFmpeg。
- 同音乐:提供两种模式——按标签比对(标题、歌手等 ID3 信息,可逐个开关),或按内容指纹比对。哪怕两首歌文件名和标签完全不同,只要旋律一样,也能被认出来。
剩下的空间小偷:空文件夹、大文件、临时文件
- 空文件夹:用递归算法向上传播"非空"状态,把套娃式空目录一次找全;
- 大文件:列出指定目录里最大的 N 个文件(默认 50 个),一眼看清谁在霸占空间;
- 空文件:0 字节文件,还可以顺带找出"全空字节"和"全不可打印字符"的怪文件;
- 临时文件:内置了一串常见垃圾名单——
thumbs.db、.bak、~、.tmp、.crdownload、.download等,也可以自己增删规则。
病号与伪装者:坏文件、错误扩展名、问题文件名
- 损坏文件:用对应库尝试打开,检测损坏或截断的文件(音频、图片、PDF、压缩包、字体、JSON/XML/TOML 等类型可勾选);
- 错误扩展名:通过文件头(magic bytes)识别真实类型,揪出"内容明明是图片、后缀却是 .txt"的伪装者,并提供一键修正;
- 问题文件名:发现大写扩展名(
.JPG)、文件名里的 emoji、首尾空格、非 ASCII 字符、重复符号等问题,并给出改名建议。
隐私与减肥:EXIF 清理、视频优化
- EXIF 清理:很多照片会携带 GPS 坐标、拍摄设备、拍摄时间等元数据,分享出去等于顺带"交底"。这个工具能找出带 EXIF 的图片,一键擦除敏感信息;
- 视频优化:找出用低效编码(如老式 H.264)存储的视频转成 H.265/AV1,或自动裁剪上下黑边(letterbox),在画质几乎不变的前提下把体积减下来。
断了的"快捷方式":无效符号链接
最后是那些指向不存在目标的符号链接,以及陷入循环的链接。它们单独存在时无害,积多了却会让文件管理器变慢、脚本报错,清理掉即可。
第四章:三步上手,外加一套"安全操作流程"
讲了这么多,怎么开始?整个过程浓缩成三步:
第 1 步:装好它。Krokiet 为 Windows 10/11、macOS 和 Ubuntu 22.04+ 提供免依赖的预编译二进制;如果你是开发者,也可以直接cargo install krokiet --locked从源码安装最新版。记得:想用相似视频功能,先装好 FFmpeg。
第 2 步:选目录,点 Scan。在界面里把要扫描的文件夹加入"包含路径",把不想碰的目录(比如系统盘、缓存目录)加入"排除路径"。按需在设置里填上允许/排除的扩展名、文件大小范围,然后点扫描。等几秒到几分钟,分组结果就整齐地列出来了。
第 3 步:谨慎处理。使用顶部动作栏的选择器(如"保留每组最新的一份"),核对一遍勾选结果,然后优先点Trash(移入回收站),而不是 Delete(永久删除)。宁可多留几天,也别删完才后悔。
给备份加一道"防删保险":参考路径
这是项目里非常贴心的小设计:如果你同时扫描了"工作文件夹"和"备份文件夹",可以在备份文件夹那一行勾上Ref(参考路径)。被标记为参考的目录永远只会被比对、绝不会被删除——哪怕勾选策略误伤了它。官方文档里给出的标准操作就是:工作目录 + 备份目录一起扫,勾 Ref,选"保留最新",剩下的安心删。
让重复扫描快起来:缓存与预哈希
第一次全量扫描比较慢很正常,因为要给文件建档。但项目内置了缓存机制,第二次及之后的扫描会明显快得多——文件大小、修改时间、哈希结果都会被缓存下来,扫描时只对比差异。大文件的"预哈希"也可以单独缓存,进一步缩短重复扫描的时间。想彻底重来?清掉缓存即可。
想要自动化?一行命令搞定
不想开图形界面的话,CLI 版把 14 个工具全部做成了子命令,还支持输出 JSON、设置退出码,方便接入定时任务和 CI 流水线。举一个最常用的例子:
czkawka_cli dup -d /你的/目录 -D AEN -Q这条命令的意思是:扫描指定目录的重复文件(dup),按"保留每组最新一份"的策略(-D AEN)做一次预演(-Q,只展示将要删除的内容,不真正动手)。确认无误后,把-Q换成-y(移入回收站)再执行一次即可。
第五章:踩坑避雷手册:安全删除的五个原则
工具越强大,越要讲分寸。以下五条建议来自项目官方文档的反复提醒,请务必记牢:
- 先预演再动手。CLI 里的
-Q(dry run)、GUI 里的"先只勾选不删除",都是给你的后悔药; - 能进回收站,就别永久删除。优先用 Trash,给自己留一周的缓冲期;
- "损坏文件"可能有误报。文档明确写道:取决于所用的解析库,broken files 检测可能出现假阳性,删除前务必人工确认;
- 标记参考路径,保护备份。多目录一起扫时,给备份目录勾上 Ref;
- 隐私无忧,但别乱授权。这个项目完全离线运行——不联网、不上传、不收集任何统计数据,这一点在官方特性列表里写得很清楚。所以清理逻辑只发生在你本机,不用担心文件信息被"送出去"。
第六章:它和 DupeGuru、FSlint 们到底差在哪
市面上的清理工具并不少,项目官方自己也列了一张对比表,老老实实地承认各家互有长短。但综合来看,差异还是很明显的:
| 能力 | Krokiet | DupeGuru | FSlint | BleachBit |
|---|---|---|---|---|
| 重复文件 | ✔ | ✔ | ✔ | — |
| 相似图片 | ✔ | ✔ | — | — |
| 相似视频(画面/音频) | ✔ | — | — | — |
| 音乐去重(标签/内容) | ✔ | ✔ | — | — |
| 空文件 / 空文件夹 | ✔ | — | ✔ | — |
| EXIF 清理 | ✔ | — | — | — |
| 视频优化器 | ✔ | — | — | — |
| 缓存加速二次扫描 | ✔ | ✔ | — | — |
| 仍在活跃开发 | 是 | 否 | 否 | 是 |
(完整对比见项目根目录的README.md中的 Comparison 章节)
再加上 Rust 带来的内存安全(项目自称"几乎 100% 无 unsafe 代码")、多线程并行扫描、单文件免安装分发,以及 Linux / Windows / macOS / FreeBSD / Android 的广泛覆盖——这些特质叠加在一起,让它成为同类里少见的"全科选手"。更难得的是,核心引擎czkawka_core是独立库,官方还提供了 Python 绑定,其他开发者完全可以把它嵌进自己的应用里,这也是它"活得久、更新勤"的底气之一。
尾声:现在,给你的磁盘做个"年度体检"吧
一句话总结全文:Czkawka/Krokiet 是一套把"重复文件、相似图片、视频音乐替身、空目录、临时垃圾、坏文件、隐私元数据"全部纳入射程的跨平台文件清理工具,用三级校验保证准确,用缓存保证效率,用回收站和预演机制保证安全。
动手吧:从官网或软件源下载适合你系统的 Krokiet(或cargo install krokiet --locked),先拿"下载文件夹"试一次重复文件扫描,看看你能找回多少 GB。如果手头是手机用户,还可以试试 Cedinia 的 Android 版。
至于未来,这个项目已经在探索更聪明的道路——社区路线图里提到了机器学习辅助分类、云存储集成、更细粒度的权限控制。但在此之前,它当下就已经是给你的磁盘做"年度体检"的最佳起点。清理一时爽,一直清理一直爽,祝你的磁盘从此告别"爆满"警告。
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考