news 2026/9/10 15:45:43

Czkawka 实测:用 Rust 做重复文件检测,快在哪、能干什么、值不值得装

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Czkawka 实测:用 Rust 做重复文件检测,快在哪、能干什么、值不值得装

Czkawka 实测:用 Rust 做重复文件检测,快在哪、能干什么、值不值得装

【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka

Czkawka 是一个 Rust 写的磁盘清理工具箱,专门干一件事:找出硬盘里重复的文件、空目录、相似图片和视频,然后帮把它们清掉。它由一个核心库加三个入口组成——命令行、桌面 GUI(Krokiet)和 Android 应用(Cedinia),能跑在 Linux、Windows、macOS、FreeBSD 和 Android 上,内置 14 个检测工具,全程不联网、不收集任何数据。

能力速览

功能模块解决什么问题入口方式
重复文件检测内容完全相同的文件占双份空间CLI / GUI
相似图片水印、分辨率不同的近似照片CLI / GUI
相似视频视觉相似或音频相同的视频CLI / GUI
空文件夹层层嵌套的空目录CLI / GUI
临时文件缓存、备份等垃圾小文件CLI / GUI
大文件找出占空间最多的前 N 个文件CLI / GUI

14 个工具里,重复文件检测最该先试:它最常用,也是其他工具里算法最讲究的一个。

三步跑通:从安装到第一次扫描

第一步:拿到程序。官方提供预编译二进制,Windows、macOS 和 Ubuntu 直接下载解压就能用,不需要装任何依赖;想从源码装的话:

git clone https://gitcode.com/GitHub_Trending/cz/czkawka && cargo install --path czkawka_cli --locked

第二步:跑第一次扫描。命令行的重复文件检测只需指定目录,-d后面可以跟多个路径:

czkawka_cli dup -d ~/Photos

第三步:看结果。跑完会直接列出重复文件组,每组内是内容相同的文件,并标注每组能释放的空间;加-f result.txt可以把结果导出成文件,方便先过目再动手删。桌面版 Krokiet 的体验一样:选目录、点扫描、在列表里勾选要保留的版本。

它怎么扫的:三级过滤加缓存

重复文件检测是三级过滤

  1. 先按文件名分组,名字不同直接排除;
  2. 名字相同或可疑的,再比文件大小,大小不同直接排除;
  3. 大小也相同的,才逐字节计算内容哈希(默认 BLAKE3)。

这个顺序是关键:哈希计算是整套工具里最贵的操作,能省一个是一个。12.0 版还加了预哈希——先只读文件的头部、中部和尾部片段算一个便宜的指纹,指纹不同的文件直接跳过,相同才做完整哈希。对几 GB 的视频文件来说,这一步省下的时间非常可观。

相似图片靠感知哈希

思路是先缩小、再打指纹:图片被缩放到很小的尺寸、转成灰度,分区块统计特征,得到一个位指纹;然后数两个指纹之间差多少位(汉明距离),差异低于阈值就算相似。所以分辨率不同、带水印、甚至镜像翻转的图片都能被认出来——12.0 版刚加了几何不变性,镜像、翻转、旋转的图也能匹配。阈值在设置里可调,默认偏严格,宁可少报也不乱报。

缓存和线程是速度的第二来源

哈希结果会写到~/.cache/czkawka/,下次扫描时没改过的文件直接查缓存跳过,只有新文件或变过的文件才重新算。多线程方面,扫描默认吃满所有 CPU 核心(0 表示自动用满),线程池统一管理,默认每个工作线程 4 MB 栈,见czkawka_core/src/common/threads.rs

三个真实使用场景

摄影师清理媒体库

照片目录里同一次拍摄的多张原图、不同分辨率的导出版本、加过水印的副本,堆起来就是几十 GB。

czkawka_cli dup -d ~/Photos -e ~/Photos/整理过 -f dup.txt

结果按组展示,每组留一张;再加一遍相似图片检测,能捞回分辨率不完全一样的近似照片。一个几百 GB 的媒体库,按组去重后清出 10% 到 30% 的空间很常见,具体看拍摄习惯。

开发者:项目间的重复文件

同一个工具脚本、配置模板被复制到十几个项目里,各存一份,更新时容易漏。

czkawka_cli dup -d ~/work -x md,py,rs,json -f dup.txt

-x限定扩展名,只对代码和文档做精确哈希匹配,内容完全相同的文件可以改挂硬链接,只占一份物理空间,各项目路径保持不变。几十个仓库的模板文件去重后,通常能省下几百 MB 起步的空间。

运维:服务器定期清理

服务器上的临时文件、空目录、垃圾小文件常年堆积,手动清不干净,也没法重复劳动。

czkawka_cli temp -d / -f /var/log/temp.txt czkawka_cli empty-folders -d / -f /var/log/ef.txt czkawka_cli big -d / -n 25 -f /var/log/big.txt

三条命令导出三份报告,接进 crontab 每周跑一次,先列最大的 25 个文件再决定删什么。一台跑了多年的开发服务器,一次清理腾出 5% 到 20% 的空间并不夸张。

调优 & 配置:改哪两个最有用

配置文件在~/.config/krokiet/(CLI 用~/.config/czkawka/),最影响体感的两项:

use_cache = true # 默认开;二次扫描速度来源 thread_number = 0 # 0 表示自动用满所有核心 similar_images_sub_similarity = 85 # 相似图片默认阈值,调低报更多

线程数默认 0(自动用满核心),在跑大目录扫描又怕卡系统时可以降到物理核心数,体感是扫描稍慢但系统照常流畅。缓存默认开启,二次扫描明显变快,一般不用动。大多数人不改这两个值也完全没问题。

跟同类工具比,选它的理由

对比项CzkawkaFSlintDupeGuru
语言 / 平台Rust;Linux、Windows、macOS、FreeBSD、AndroidPython;LinuxPython + Qt;Linux、macOS、Windows
工具覆盖面14 种,含相似视频、音频匹配、损坏文件检查偏系统级检查,无相似媒体重复文件 + 相似图片/音频
缓存加速二次扫描支持不支持支持
维护状态活跃开发已停更基本停更

追求速度、跨平台统一体验,或者要相似视频、音频匹配这类工具,选 Czkawka;只想要一个找重复文件的图形界面,DupeGuru 也够用,只是功能面窄一些。

它怎么走到今天的 & 下一步

项目由 qarmin 受 FSlint 启发启动,核心引擎一直是 Rust,界面换了三轮:早期的 GTK 4 版 Czkawka,到 Slint 版 Krokiet,再到 Android 端的 Cedinia。2026 年 6 月的 12.0 版宣布 GTK 前端停止发新二进制,Krokiet 成为主力方向。按最近的更新记录,下一步集中在视频相似检测换用新引擎、相似图片的几何不变性识别,以及能验证图片解码能力的诊断面板。

Czkawka 是一套 Rust 写的磁盘清理工具箱,CLI、桌面 GUI 和 Android 应用共享同一个核心,14 个工具覆盖重复文件检测、相似图片视频、空目录、临时文件和损坏文件。建议先拿自己的照片目录跑一遍相似图片检测,看看能腾出多少空间。

【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 15:45:31

游戏用户在线时长大数据分析实战

1. 项目背景与研究价值在数字娱乐产业蓬勃发展的当下,游戏运营商积累的用户行为数据正以指数级增长。以某头部MOBA游戏为例,其日均产生的玩家在线日志超过20TB,这些数据中蕴含着用户粘性、活跃周期、付费转化等关键商业信息。传统的数据处理方…

作者头像 李华
网站建设 2026/9/10 15:41:51

WMS严格按需出库:提升仓储效率的关键技术解析

1. 项目概述:WMS严格按需出库的核心价值刚接手仓库管理时最头疼的就是"多发少发"问题——生产线上急等某个配件,结果仓库发了双倍数量过去;客户订单明明要100件,系统却只出了80件。这种误差不仅造成库存混乱&#xff0c…

作者头像 李华
网站建设 2026/9/10 15:39:20

在训练模型前配置环境时,我常用的anaconda命令

我使用anaconda的目的: 1、Anaconda自带了conda包管理系统,可以方便地安装、更新和删除Python包,解决了包之间的依赖关系问题。 这样,我就不用到python官网特意去下载特定版本的python(这个安装过程虽然简单&#xff0…

作者头像 李华