重复文件吃满硬盘?用 Czkawka 三步清理出空间
你正整理一个旧项目文件夹,翻到第 7 个同一张截图的副本,文件名还叫"最终版(2).png",磁盘又满了。Czkawka 是一个用 Rust 编写的多功能文件清理工具,支持 Windows、macOS、Linux 和 Android,专查重复文件、相似图片与空文件夹。它完全免费开源,无广告,也不收集任何数据。
项目全景速览
Czkawka 由共享核心库加四个前端组成。所有扫描逻辑都用 Rust 写在 czkawka_core 里,几乎 100% 无 unsafe 代码。桌面版 Krokiet 基于 Slint 框架,编译后是单个自包含可执行文件;Android 版叫 Cedinia;命令行版叫 czkawka_cli。它覆盖 Linux、Windows、macOS、FreeBSD 和 Android,兼容 x86、ARM、RISC-V 架构。许可证分组件:核心与 CLI 为 MIT,Krokiet 和 Cedinia 应用整体为 GPL-3.0。项目处于活跃开发状态,持续发布新版本。
- 内存安全的 Rust 编写
- 多线程扫描,缓存加速
- 完全离线,零网络请求
- 免费开源,没有广告
- 五平台通吃
核心能力拆解
照片视频库越攒越胖
你拍了几千张照片,同一段视频存了好几份。重复文件查找支持三种方式:文件名、文件大小、内容哈希(即文件的"指纹",内容相同则指纹相同),哈希方式可保证结果准确。相似图片用感知哈希(忽略精确像素的图片指纹)比对画面内容,能找出不同分辨率、带水印、旋转过的"同一张照片"。相似视频通过抽帧比对,同音乐则按标签或音频内容查重。
| 功能 | 匹配方式 | 说明 |
|---|---|---|
| 重复文件 | 名称 / 大小 / 哈希 | 哈希模式结果最可靠 |
| 相似图片 | 感知哈希 | 不同分辨率的"同一张"也能找到 |
| 相似视频 | 抽帧比对 | 需要系统装有 ffmpeg |
| 同音乐 | 标签或内容 | 不同编码的同一首歌 |
角落里的空间悄悄流失
软件卸载很久,空文件夹还在;临时文件越堆越多。空文件夹用递归算法判定,空文件定位 0 字节文件,大文件按数量取前 N 大,临时文件按内置模式匹配。还能处理无效符号链接(指向不存在目标的快捷方式)和移除图片的 Exif(照片里记录时间、地点的元数据),后者能保护隐私。
给文件做一次体检
下载中断或写入损坏时,文件还在却打不开。损坏文件工具会实际解码文件来探测无效内容;错误扩展名找出内容与后缀不符的文件,比如实际是 PNG 却叫 .jpg;坏文件名揪出含特殊字符的命名。
🚀 五步上手:完成第一次重复文件扫描
Krokiet 在所有平台都是自包含可执行文件,下载即用,无需安装运行环境。
Windows:从项目发布页下载预编译 .exe,双击运行。
macOS 与 Linux 需要手动加执行权限:
# Linux:加执行权限后运行
chmod +x linux_krokiet_x86_64
./linux_krokiet_x86_64
# macOS:加权限后运行,提示"未识别开发者"时右键选择打开
chmod +x mac_krokiet_arm64 && ./mac_krokiet_arm64
没有预编译包?也可以从源码编译:
# 克隆仓库并编译 CLI
git clone https://gitcode.com/GitHub_Trending/cz/czkawka
cargo build --release --bin czkawka_cli
操作只要 5 步:
- 选工具,例如"重复文件"。
- 点"添加目录",选中要扫描的文件夹。
- 调选项,如最小文件大小(默认 16 KB 以下会被跳过)。
- 点扫描,等进度条走完。
- 查看结果分组,对副本执行删除、移动或硬链接。
第一次扫描会慢一些,哈希会写入缓存,第二次扫描同一目录明显提速。
⌨️ 进阶与自动化:一条命令找出重复文件
如果你习惯终端,或想把清理做成定时任务,可以试试 czkawka_cli。每个工具都是子命令,--help 能列出全部参数。
# 先预演要删什么(dry-run,不实际改动)
czkawka_cli dup -d ~/Documents -D AEN -Q
# 确认无误再真删:每组保留最新的,其余进回收站
czkawka_cli dup -d ~/Documents -D AEN -y
# 找相似图片,结果导出成文本
czkawka_cli image -d ~/Pictures -x IMAGE -f similar.txt
# 扫整个主目录,跳过系统回收站
czkawka_cli dup -d ~/ -E '$TRASH'
如果你要把结果交给自己的程序处理,用 -C 输出 JSON 即可。
⚖️ 横向对比:Czkawka 和 FSlint、DupeGuru 哪个好
| 维度 | Czkawka(Krokiet) | FSlint | DupeGuru | BleachBit |
|---|---|---|---|---|
| 语言实现 | Rust | C + Python | Python/Obj-C | Python |
| 相似视频查找 | 支持(抽帧比对) | 无 | 无 | 无 |
| Android 版本 | 支持(Cedinia) | 无 | 无 | 无 |
| 跨前端共享缓存 | 支持 | 无 | 支持 | 无 |
| 开发状态 | 活跃更新 | 停止更新 | 更新很少 | 维护中 |
少数同时具备相似视频、移动端与活跃维护的工具。
避坑与注意事项
- ⚠️ "明明有重复却没找到" → 默认最小文件大小 16 KB 会跳过小文件,去设置里调低
- ⚠️ 相似视频功能不工作 → 系统需单独安装 ffmpeg 并在 PATH 中可用
- ⚠️ 跨分区创建硬链接失败 → 硬链接不能跨文件系统,原文件不会被动,可改用移动
- ⚠️ CLI 扫出回收站和 .git → 命令行没有默认排除项,加
-E '$TRASH'或-E DEFAULT - ⚠️ 杀软把程序当病毒报毒 → LTO 编译的 Rust 二进制常见误报,先核对官方发布文件的哈希
适合谁 / 不适合谁
适合你,如果:
- 照片视频很多,想定期整理图库
- 喜欢自动化,用 CLI 定时扫描
- 手机也需要清理,装 Cedinia 即可
不适合你,如果:
- 只想清 Windows 系统垃圾,BleachBit 更对口
- 需要浏览器远程访问的界面
- 主要管理 SMB/NFS 网络共享(移动回收站不可靠)
📚 资源入口与结语
从一个文件夹开始,让 Czkawka 把浪费空间的副本一个个揪出来。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



