news 2026/8/18 18:19:11

Czkawka 清理实战:这个 Rust 写的“打嗝“程序,帮我找回了 60 GB 磁盘空间

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Czkawka 清理实战:这个 Rust 写的“打嗝“程序,帮我找回了 60 GB 磁盘空间

Czkawka 清理实战:这个 Rust 写的"打嗝"程序,帮我找回了 60 GB 磁盘空间

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

如果你也经历过"磁盘满了"的深夜,你会理解那种抓狂:想导出一个视频、装一个软件、同步一次手机照片,系统却弹出一行冷冰冰的"空间不足"。于是我开始翻找硬盘,想看看究竟是哪些文件在偷走空间——然后发现自己根本无从下手。

Czkawka(波兰语"打嗝")就是为解决这个真实痛点而生的开源磁盘清理工具。它不联网、无广告、不弹窗,纯粹靠算法把重复文件、空文件夹、相似图片这类"空间杀手"找出来交给你处理。这篇文章我会从"它到底解决什么问题"讲起,用一次真实的清理过程演示它的用法,再附上新手最容易踩的坑。读完你就能自己动手,找回几十 GB 空间。

先搞清楚:Czkawka 不是又一个"清理大师"

市面上的"电脑清理软件"大多是同一套路:装完先来一波弹窗,扫描完告诉你"发现 3.2 GB 垃圾",点清理后发现能清的其实只有几百 MB,剩下的都在诱导你付费。

Czkawka 走的是完全相反的路线:

  • 完全本地离线运行。项目明确承诺不联网、不采集数据、无遥测,仓库的依赖列表里没有任何网络相关库,代码层面就没有联网通道。
  • 专注"找文件"而非"删垃圾"。它不碰注册表、不删缓存目录,而是把重复文件、空文件夹、大文件等 14 类问题如实列给你,删不删、怎么删由你决定。
  • 多线程 + 缓存。用 Rust 编写,充分利用多核 CPU;首次扫描的计算结果会写入缓存,第二次扫描同一目录明显更快。

它提供的 14 种工具,可以大致分成四类:

类别工具解决什么问题
找重复重复文件、相似图像、相似视频、相同音乐内容重复但名字不同、分辨率不同的"同一份文件"
找空洞空文件夹、空文件、大文件层层嵌套的空目录、0 字节文件、占用空间的大户
找异常损坏文件、无效符号链接、错误扩展名、临时文件、非法文件名打不开的、指向不存在的、扩展名与内容不符的文件
做加工清理 Exif 信息、视频优化删除照片隐私元数据、裁剪视频黑边并转成更高效的编码

每一类工具都对应一个独立场景,而不是一个大而全的"一键清理"。这种"把选择权留给用户"的设计,恰恰是它和商业清理软件最大的区别。

三个入口,共用一颗引擎:Krokiet / CLI / Cedinia 怎么选

Czkawka 的架构值得先理解一下:所有扫描逻辑都封装在核心库czkawka_core里,上层有多个不同形态的前端,这意味着你在哪个界面用,扫描结果都是一样的。当前项目提供三个活跃前端:

  • Krokiet:新一代图形界面,基于 Slint 框架,静态链接、无额外依赖,Windows / macOS / Linux 表现一致,是官方推荐的 GUI。
  • Czkawka GTK:旧版图形界面,12.0 是最后一个版本,官方已停止维护,新用户不要选它。
  • Cedinia:专为 Android 打造的触屏界面,可在手机上直接扫描内存卡或手机存储(受平台限制,视频相关工具不可用)。
  • czkawka_cli:命令行前端,适合脚本化和定时自动化,后面实战部分会用它演示。

新手建议直接装 Krokiet:它把 14 种工具都做成了左侧的选项页,勾选目录、点扫描、看结果、选文件、执行操作,整个流程不用记任何命令。想自动化、或想在公司服务器上批量清理,才需要转向 CLI。

重复文件是怎么被"抓"出来的:一条三级流水线

重复文件是 Czkawka 最核心的工具,它的检测机制也最能体现这个项目的工程水平。很多人以为"找重复"就是算文件哈希,但直接对所有文件算全量哈希非常慢——全量读盘是最大的性能瓶颈

czkawka_core里重复检测实际是一条三级流水线(见 instructions/Instruction_Core.md):

  1. 按文件大小分组。大小不相同的文件不可能是重复的,这一步在内存里瞬间完成,把绝大多数文件直接排除。
  2. 计算"预哈希"(prehash)。对同一大小分组内的文件,只读取开头和结尾各 4 KB 计算一个快速哈希——两个文件如果预哈希都不同,就没有再比下去的必要。
  3. 全量哈希确认。只有通过了前两关的少数文件,才计算完整内容的加密哈希(默认 BLAKE3,也支持 XXH3、CRC32),按哈希分组,得到最终重复组。

这个设计的妙处在于:真正需要读完整文件内容的,只有极少数"疑似重复",扫描 10 万个文件时大部分文件只被读了 8 KB。配合缓存机制,第二次扫描时连这 8 KB 都不用重复读,所以"越扫越快"。

对应的效果是:结果准(BLAKE3 是加密哈希,两个不同文件撞出相同哈希的概率在工程上可以忽略),速度稳(大目录扫描也基本不会卡死内存)。如果你感兴趣,这部分实现可以直接读 czkawka_core/src/tools/duplicate/core.rs。

一次完整清理实战:从"试跑"到"进回收站"

光讲原理不够,下面用命令行完整走一遍"清理一个塞满照片和视频的目录"的过程。命令都在czkawka_cli中执行,安装方式参考 czkawka_cli/README.md。

第一步:先扫描,只看不动。

czkawka_cli dup -d /home/user/Downloads -f dup_results.txt

-d指定要扫描的目录,结果保存到文本文件。此时默认什么都不删,先看看战果。

第二步:确认操作范围,做一次"试跑"。

czkawka_cli dup -d /home/user/Downloads -D AEN -Q

-D AEN表示"每组重复中保留最新文件,删除其余";-Q是干跑(dry run),只打印"将要删除哪些文件",实际不动任何东西。任何删除之前都建议先这样跑一遍

第三步:真正执行,但先进回收站。

czkawka_cli dup -d /home/user/Downloads -D AEN -y

-y表示把文件移入系统回收站而非永久删除,万一误删还能恢复。执行完检查结果,确认无误后再清空回收站。

删除方法除了AEN(保留最新),还有AEO(保留最旧)、AEB(保留最大)、AES(保留最小),以及一个很有用的HARD——它不删文件,而是把重复文件替换成硬链接,既释放空间又保留所有路径可用。

实战里还有一个保护机制值得单独说:参考目录。如果/home/user/Backup是你的主备份,不希望被动过,可以把它标记为参考目录,只参与比较、绝不参与删除:

czkawka_cli dup -d /home/user/Downloads -r /home/user/Backup -D AEN -y

这个场景很典型:下载目录里堆了一堆和备份重复的文件,但你只想清理下载目录、绝不碰备份本体。CLI 完整参数表在 instructions/Instruction_CLI.md。

图像、视频、音乐:相似内容是怎么判断的

重复文件工具处理的是"内容完全相同"的文件,但现实里更常见的麻烦是**"看起来一样,其实不是同一个文件"**:同一张照片在手机里存了三份不同分辨率的版本;一段视频被剪辑、旋转后又被导出了一次;两首歌比特率不同但其实是同一首。这三个问题分别由三个工具解决:

工具判断依据典型场景
相似图像感知哈希(感知上相似的图像算出的哈希接近)同一张图的不同分辨率、带不同水印的版本
相似视频借助 ffmpeg 抽取关键帧逐帧比对被裁剪、旋转、缩放过的同一段视频
相同音乐标签匹配 + 内容指纹双重方式不同比特率、不同标签的同一首歌

用法上它们与dup完全同构,只是扫描目标不同。以图像为例:

czkawka_cli image -d /home/user/Photos -D AEB -y

上面这条命令把照片目录里"视觉上相似"的图片按组列出,保留每组中最大的那个版本(通常分辨率最高),其余移入回收站。视频和音乐工具的使用方式可以看 instructions/Instruction_Krokiet.md 里的对应章节。

有一点要提前知道:相似视频和视频优化工具依赖 ffmpeg,需要单独安装(Linux 下sudo apt install ffmpeg,macOS 下brew install ffmpeg),在 czkawka_cli/README.md 里有各平台的安装说明。

另外两个"加工类"工具值得顺便提一句:Exif 清理器能批量删除照片里的拍摄地点、设备型号等隐私元数据,适合发图前处理;视频优化器能裁掉视频的黑边/静止画面,并转成更高效的编码格式,把大视频压缩到原来的一小半。

新手最容易踩的 5 个坑

这些坑大多来自项目 FAQ 里上千条真实 issue 的沉淀(见 instructions/FAQ.md),提前知道能帮你省很多事。

坑一:跳过"试跑"直接删。不管 GUI 还是 CLI,删除前务必先预览结果。-Q干跑模式就是为此设计的,习惯性用起来。

坑二:用"文件名匹配"当主力。dup的搜索方式有NAMESIZESIZE_NAMEHASH四种。NAME虽然快,但同名不同内容会造成大量误报,官方也只建议拿它做快速实验;正式去重请用默认的HASH

坑三:同时开两个同工具的实例。不同工具可以并行扫描(缓存文件各自独立),但同一个工具的多个实例同时运行会损坏该工具的缓存。想多开请换不同工具。

坑四:把 GTK 版当成主力。旧版 GTK 界面在 Windows/macOS 上有窗口无法点击、HiDPI 模糊等一系列历史问题,且 12.0 后已停止维护。任何平台都直接选 Krokiet。

坑五:扫描常插拔的外接硬盘却开着"自动清理过期缓存"。对经常拔插的移动硬盘,建议在设置里关闭"自动删除过期缓存",改用手动清理,否则缓存条目会在你拔盘时被误判为失效而清掉,下次插回又要重扫。

如果你用的是 Krokiet 图形界面,可以额外打开"预哈希缓存"(默认已开启),这对大目录的重复扫描速度提升最明显,原理就是前面说的三级流水线第二级。

接下来你可以怎么做

现在你已经有足够的信息动手了。我建议按这个顺序开始:

  1. 装 Krokiet 图形界面,打开"重复文件"工具,扫描你照片最多的目录,先看结果不删除——观察重复文件的规模。
  2. 再用"大文件"工具看一眼整个磁盘,找出真正占空间的那几个大户,决定是清理还是归档。
  3. 确认工具好用之后,把 CLI 写进定时任务,比如每周日自动扫描下载目录并干跑一次,把报告输出到文件供你抽查。

深入材料都在这几个地方:全工具的参数参考 instructions/Instruction_CLI.md,算法与缓存机制见 instructions/Instruction_Core.md,常见问题合集在 instructions/FAQ.md,Android 版本细节在 cedinia/README.md。

如果想从源码编译最新版本,可以这样拉取仓库并构建命令行工具:

git clone https://gitcode.com/GitHub_Trending/cz/czkawka cd czkawka cargo build --release --bin czkawka_cli

最后留一句实用提醒:任何清理工具都只是"找"的专家,而"删"的决定权永远应该在你手里。给每个大目录建一个只读的备份参考目录,用 Czkawka 对比着清理,既能放心地释放空间,又不会误伤真正重要的文件。

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

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

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

低价小程序制作平台可靠吗?年费、续费、售后和功能边界对比

低价小程序制作平台可靠吗?年费、续费、售后和功能边界对比 低价小程序制作平台可靠吗,不能简单回答可靠或不可靠。低价本身不是问题,问题在于企业有没有看清费用边界、功能范围、上线责任和后续维护。 有些低价方案适合展示、报名和轻量预…

作者头像 李华