磁盘快满到报警?Czkawka 半小时揪出几十个G的重复文件、相似图片和空文件夹
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
如果你有台用了两三年的电脑,大概经历过这个场景:系统弹窗提示"磁盘空间不足",你点开文件管理器一层层翻,发现占地方的全是"好像认识又不敢删"的东西——手机备份的照片、重复下载的视频、装完就忘的安装包、还有node_modules这种动辄几百兆的文件夹。
Czkawka 就是干这个的开源磁盘清理工具。它用 Rust 写成,完全离线运行,不联网、不上传数据,能在几分钟内把重复文件、相似图片、空文件夹、大文件、损坏文件等十四类"占地方的东西"一次性列出来,再由你决定删不删。这篇文章不讲空话,我把它拆成"遇到问题 → 怎么选 → 怎么用 → 为什么快 → 三个实战 → 脚本自动化",一步步带你把它真正用起来。
一、先讲一个 23:47 的磁盘告急
上周帮朋友清一台笔记本,512G 的硬盘只剩 3.2G。他不敢删东西,因为不知道哪个文件"还有用",装过的清理软件全是先弹广告再收费。
我装好 Czkawka,选好目录,点了扫描,三分钟后结果出来了:
- 重复文件:占了 47G(手机照片同步了三次,下载的电影有两个版本)
- 相似图片:7.2G(同一张照片,不同分辨率、加过水印的都有)
- 空文件夹:1300 多个(大多是卸载软件残留的目录骨架)
清完之后,硬盘从红色警告变成了绿色,整个过程半小时不到。你没有必要花一个周末手动翻文件夹。
二、装之前先搞清一个事:它有三个名字
Czkawka 的项目历史容易让新手栽跟头,我先把名字讲清楚:
- Czkawka(GTK 版):老图形界面,12.0 是最后一个版本,官方已停止发布新二进制。别下载它。
- Krokiet:新一代图形界面,基于 Slint 框架,跨平台表现一致,新用户直接选它。
- Cedinia:Android 触摸版,手机上用的。
- czkawka_cli:命令行版,适合写脚本自动化。
我拿 Krokiet 和几款常见清理工具做了对比,这是官方文档里的功能对照表,我摘了关键几行:
| 功能 | Krokiet | DupeGuru | FSlint | Bleachbit |
|---|---|---|---|---|
| 重复文件查找 | ✔ | ✔ | ✔ | |
| 相似图片 | ✔ | ✔ | ||
| 相似视频(抽帧) | ✔ | |||
| 相同音乐(按内容) | ✔ | |||
| 空文件夹 | ✔ | ✔ | ||
| 大文件 | ✔ | |||
| 损坏文件 | ✔ | |||
| 无效符号链接 | ✔ | ✔ | ||
| 便携版 | ✔ | ✔ | ||
| 仍在积极开发 | ✔ | ✘ | ✘ | ✔ |
看完这张表你应该有个判断:DupeGuru 的强项是相似图片,FSlint 已经很久没更新,而 Krokiet 是唯一把"重复文件、相似图片、相似视频、同音乐、损坏文件"全都塞进一个界面的。它不是"又一个 DupeGuru",而是把别人分散在好几个工具里的功能合到了一起。
三、从下载到第一份扫描结果,5 分钟够用
Krokiet 的预编译二进制在官方 Release 页面,Windows、macOS、Linux 都有,下载解压就能跑,没有强制运行时依赖——这一点比 GTK 时代的 Czkawka 舒服太多了,那时候在 Linux 上缺几个动态库就能折腾一小时。
想自己编译也简单,前提是你装了 Rust:
cargo install krokiet --locked想从源码构建,就把仓库拉下来:
git clone https://gitcode.com/GitHub_Trending/cz/czkawka cd czkawka cargo build --release --bin krokiet第一次打开 Krokiet,操作顺序是这样:
- 在"包含路径"里添加要扫的目录(比如你的图片库、下载目录);
- 在"排除路径"里加掉肯定不用扫的(比如
node_modules、系统目录); - 选一个工具开始扫描,比如"重复文件";
- 扫描完点进结果,勾选要处理的条目,选"移动"或"删除"。
有一个细节值得提前说:第一次扫描会慢,第二次会快得多。原因是它把哈希和缩略图都写进了缓存,第二次扫相同目录时直接读缓存。所以别因为第一次等了两分钟就急着卸载,后面你就知道这个缓存有多值。
四、它凭什么快?三级验证加两道缓存
很多清理工具扫重复文件的方式是"把所有文件全部算一遍哈希",文件一多就慢得离谱。Czkawka 的做法是分三层筛选:
- 文件名匹配:先快速筛掉不同名的文件,缩小候选集;
- 文件大小比较:大小不同的文件不可能相同,再砍掉一批;
- 哈希计算:只有前两步都通过的文件,才真正读内容算哈希(支持 MD5、SHA-1 等)。
大部分文件在前两步就被排除了,真正需要读盘的没几个,这是它快的第一个原因。
第二个原因是缓存设计。缓存文件是所有前端共享的,存放在统一缓存目录(Linux 下是~/.cache/czkawka/),你可以在 Krokiet 里扫完,再用命令行版扫,结果直接复用。更关键的是 Krokiet 默认启用了prehash 缓存:大文件先只算开头和结尾各 4KB 的部分哈希,重扫时只有新增或修改过的文件才需要完整哈希,大部分文件直接跳过。这个优化让第二次扫描往往只需要第一次的零头时间。
还有个小技巧:扫描中途点了停止,也不用从头再来——已经算完的哈希已经写进缓存了,下次继续扫会接着用。
五、三个实战场景:照片、音乐、视频
场景一:整理照片库,顺手保护原图
相似图片工具用的是感知哈希,能识别"不是完全相同"的图片——同一张照片缩小了分辨率、加了水印、转了 90 度,它都能找出来。整理手机照片导出文件夹特别有用。
这里必须提一个防止误删的功能:Reference paths(参考路径)。你可以把某个目录标记为"参考路径",扫描时它参与比对,但任何自动操作都动不了里面的文件。比如你有个"原片备份"目录,把原始照片放进去并标记为参考路径,清理时它只作为比对基准,永远不会被删。这个功能支持重复文件、相似图片、相似视频和相同音乐。
场景二:音乐库去重,按标签还是按内容?
相同音乐工具有两种模式:按标签(ID3 等元数据)比对,适合"同一首歌下过两份、标签一样但文件名不同"的情况;按内容比对则是真的读音频内容算指纹,适合"标签被改过、但实际是同一首歌"的情况。命令行版可以自定义标签组合,比如同时按歌手、年份、专辑比对。
场景三:相似视频,记得先装 ffmpeg
相似视频工具会抽帧做视觉比对,能识别剪辑过、旋转过、缩放过的同一段视频。注意一个前置条件:这个工具运行时依赖 ffmpeg,Linux 上要先sudo apt install ffmpeg,macOS 用brew install ffmpeg。没装的话视频工具会报错,别以为是软件坏了。
同一个工具里还有个"视频优化器",能把视频裁掉静态画面并转成更高效的编码格式,对老视频仓库很实用。
顺手提一句:Exif 清理
发照片到网上之前,很多人不知道照片里埋着拍摄时间、GPS 坐标这类 Exif 信息。Czkawka 的 Exif 清理工具可以把这些元数据抹掉,一次处理整个目录,适合隐私敏感的场景。
六、进阶:把清理变成定时脚本
如果你常年在命令行里干活,czkawka_cli 值得花十分钟折腾一下。它不存配置文件,一切靠参数,正好适合写进 cron。
几个真实的命令示例(来自 CLI 文档):
# 扫重复文件:-d 扫 /home 排除图片目录,按哈希比对,结果写入文件,同时删除查出的重复 czkawka_cli dup -d /home/rafal -e /home/rafal/Obrazy -m 25 -s hash -f results.txt -D aeo # 找空文件夹 czkawka_cli empty-folders -d /home/rafal/rr /home/gateway -f results.txt # 列出最大的 25 个文件 czkawka_cli big -d /home/rafal/ -n 25 -x VIDEO -f results.txt # 清理临时文件,排除 .git 和 tmp 开头的目录 czkawka_cli temp -d /home/rafal/ -E '*/.git' '*/tmp*' -D每个工具都有独立的--help,参数记不清就查:czkawka_cli dup --help。
然后你就可以写个每周日的清理脚本,把duplicate、empty-folders、temporary串起来跑一遍,让清理变成全自动的事。
七、五个常见坑,踩到任何一个都别慌
最后放一张速查表,都是文档 FAQ 里反复出现的问题:
| 坑 | 表现 | 解法 |
|---|---|---|
| 下载了 Czkawka GTK 版 | 提示旧、不更新 | 换 Krokiet,GTK 版 12.0 已停更 |
| 相似视频扫不了 | 报 ffmpeg 相关错误 | 先装 ffmpeg 再试 |
| Windows 打不开 HEIC/RAW 图 | 相似图片漏扫 | 预编译版不带 heif/libraw,属正常限制 |
| 第二次扫描反而卡 | 缓存文件太大、加载慢 | 删掉~/.cache/czkawka/里对应的大缓存文件,下次会自动重建 |
| 外接硬盘的缓存总被清掉 | 拔盘后重扫很慢 | 设置里关掉"自动删除过期缓存条目",手动清理 |
今天就能做的三件事:第一,下载 Krokiet,先对下载目录和照片目录跑一次重复文件扫描,看看能腾出多少空间;第二,把"参考路径"用起来,保护你的原片;第三,如果是命令行党,把czkawka_cli duplicate加进你的每周定时任务。
对了,如果你在 Android 上也需要这个能力,可以去看看 Cedinia——同一个核心库的触屏版,功能对照表里除了视频工具(Android 上缺 ffmpeg),其余基本都在。
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考