Czkawka:快速扫出重复文件与相似图片,一键把空间还给硬盘
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
硬盘越用越满,重复下过的安装包、备份了几遍的照片、改来改去又翻出旧版的文档,这些东西没人删,空间就这么一点点被吃掉。Czkawka 就是来解决这件事的:一个用 Rust 写的开源工具,靠多线程遍历加哈希比对,帮你在整块硬盘里找出重复文件、相似图片和空文件夹,把占着却用不上的地方腾出来,完成一次真正的存储空间释放。
它到底能干什么
它不是那种只能找重复文件的单一小工具。同一套扫描引擎(czkawka_core)上跑着好几个界面:桌面图形界面 Krokiet、命令行 czkawka_cli,甚至还有一款安卓触屏应用 Cedinia——功能共用,你爱点按钮就点按钮,爱敲命令就敲命令。它把"哪些东西该清"这件靠人肉很难扫干净的事,拆成一个个可以单独开关的检查项:重复文件、相似图片、相似视频、空文件夹、超大文件、临时文件、坏链接、损坏文件、名不副实的扩展名,甚至视频里的黑边。用哪个扫哪个,不用全开。
💡 对刚上手的人,记一句话就够:它先帮你"找",找完原样摆在你面前,删不删、删哪个,由你拍板。
光知道它能干嘛还不够,真正跑起来才见分晓。
从零到跑通
安装首启
大多数系统直接下预编译包解压就能用;想从源码来,就把下面这两行跑一遍——克隆仓库再编译出命令行版本(想装图形界面把czkawka_cli换成krokiet即可)。
# 克隆仓库 git clone https://gitcode.com/GitHub_Trending/cz/czkawka # 编译命令行工具,GUI 可改成 --bin krokiet cargo build --release --bin czkawka_cli首次扫描怎么配
第一次别贪大,挑下载和相册这种重复重灾区先试水。-d指定要扫的目录,-f把结果写进文件,比刷屏好看得多。
# -d 指定目录,-f 把结果存到文件里慢慢看 czkawka_cli dup -d ~/Downloads -f 重复清单.txt # 只看图片加 -x IMAGE;想跳过 1MB 以下的小文件再加 -m 1048576安全删除姿势
⚠️ 删之前务必先"预演"。-Q只打印会动哪些文件、不真删;确认名单没问题时,-y把重复项移进回收站而不是永久删除。先留最新版、丢其余的,用-D AEN指定。
# -Q 只预演不删除,看看会动哪些文件 czkawka_cli dup -d ~/Documents -D AEN -Q # 名单没问题后,-y 把重复项移到回收站 czkawka_cli dup -d ~/Documents -D AEN -y进阶玩法
命令行批处理
命令行最香的地方是能写进定时任务。把下面这条丢进 crontab,每周日自动扫一遍下载目录、导出 JSON 报告,你根本不用管它。
# 每周日自动扫 Downloads,导出 JSON 报告 czkawka_cli dup -d ~/Downloads -p 报告.json -N -M -W需要完整参数手册的话,官方 CLI 文档 里每个 flag 都写得明明白白。
按文件类型的专项技巧
相似图片和"完全重复"是两回事——分辨率不同、加了水印的,内容哈希对不上,得靠感知哈希来认。image子命令的-s是最大哈希距离,越小越严格,默认 5。
# 相似图片:-s 3 更严格,专抓缩略图与原图这种 czkawka_cli image -d ~/Pictures -s 3 -f 相似图片.txt别踩这些坑
清理这件事,边界感比速度更重要。给你三条守则,照着做基本不翻车:
- 🟢可以放手做的:只扫你亲自指定的目录;先
-Q预演再动手;能进回收站就别永久删。 - 🟢划重点:重复判定靠的是内容哈希,不是看名字瞎删,别因为文件叫
备份_最终版2.pdf就手动排除。 - 🔴别碰的:别把根目录或系统盘整个丢给它;别在没预演的情况下加
-D真删;别在两个实例里同时跑同一个工具(会写坏缓存)。
万一还是手滑删错了,按这三步救回来:
- 立刻停手,别再往那块盘写数据,免得覆盖掉还能恢复的扇区。
- 先翻回收站——只要当时用了
-y,东西基本都还躺在那儿,直接还原。 - 真被永久删了,用 TestDisk 之类的工具对该分区做深度扫描,按类型挑着恢复。
它是怎么做到的
它没有一上来就对每个文件算完整哈希——那太慢。实际分几步走:先用文件大小和名字做粗筛,把明显不同的直接甩掉;然后只读每个文件头尾各 4KB 算一个"prehash",头尾对得上的才进下一轮;最后才对剩下的文件算完整哈希(默认 BLAKE3,也可切 XXH3 / CRC32),哈希相同才判为同一份重复文件。
多线程遍历 → 大小/名字粗筛 → 头尾 prehash → 完整哈希 → 分组比对这套"先粗后细"的流水线全程多线程并行,所以体感上比手动翻快非常多。而且它带缓存:官方提到算过的哈希会存下来,第二次扫同一批文件会明显更快,你中途停掉也没白跑,下次接着用。
你问我答
它会不会误删系统文件?它只扫你明确指定的目录,默认不会自己跑去系统目录;判定基于内容哈希而非文件名。只要别把整个根目录丢给它,基本碰不到系统文件。
相似图片阈值调到多少合适?image的-s是最大哈希距离,默认 5,越小越严格。缩略图对原图这种要抠细节的,调到 0-3;跨压缩、带水印的,放宽到 10-20。
支持网络硬盘 / NAS 吗?支持。SMB / NFS 这类网络共享先挂载成本地路径,再用-d指过去就行,和扫本地目录没区别。
扫一个大硬盘要多久?体感上比手动翻快非常多,具体看文件数量和硬盘速度;官方提到有缓存机制,第二次扫同一批文件会明显更快,大目录建议放在夜间跑。
怎么排除某类文件?用-P传要跳过的扩展名,如czkawka_cli dup -d ~/Music -P mp3;要排除整个目录用-e,按文件名通配排除用-E。更多细节看常见问题集。
硬盘不会自己瘦,但你可以让它每周瘦一次。
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考