三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

硬盘又红了?我用 Czkawka 一次性找回了 40GB 空间

硬盘又红了?我用 Czkawka 一次性找回了 40GB 空间

硬盘又红了?我用 Czkawka 一次性找回了 40GB 空间

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

副标题:从下载到彻底清理,一份新手也能照抄的重复文件清理实战记录

那天晚上,我盯着 1.2GB 的剩余空间发呆

本来只是想把新拍的素材拖进电脑,C 盘却弹出一行刺眼的提示:磁盘空间不足。打开资源管理器一层层翻下去,Downloads 里躺着三个"最终版",Pictures 里是五年攒下的照片备份,还有一堆不知道什么时候冒出来的安装包。我明明没存什么大东西,500GB 的空间怎么就没了?

答案其实就藏在那些名字很像的文件里——重复文件。而解决这个问题的工具,就是今天的主角Czkawka(波兰语"打嗝",读作 tch-kav-ka)。它是一款用 Rust 写的开源清理工具,专门干一件事:把硬盘里重复的、没用的、占地方的文件全找出来,让你一键清掉。没有广告、不上传数据、完全离线,而且是免费开源的。

如果你也遇到过"磁盘红了却不知道空间去哪了",接下来的 10 分钟,值得留给这篇文章。

第一次全流程实录:从双击程序到空间回归

我拿自己当小白鼠,走了一遍完整流程。你会发现 Krokiet 把复杂的事情拆得很碎,每一步都有明确的按钮,跟着做就行。

第 1 步(0 分钟):拿到程序。现在项目的官方主力界面叫 Krokiet,Windows 版下载下来是一个压缩包,解压后是单个.exe,双击就能跑,不需要装任何运行库——这是它最让我感动的一点,绿色免安装,解压即用。旧版基于 GTK 的 Czkawka 界面已经停更(12.0 是最后一个版本),别下错了,认准 Krokiet。

第 2 步(3 分钟):选定战场。打开后先别急着全盘扫描。我选了 Downloads 和 Documents 两个目录,理由是:这里的文件最杂、重复率最高,而且都是我自己能确认安全的东西。新手强烈建议从这样的"小范围"开始,而不是一上来就扫整个 C 盘。

第 3 步(5 分钟):认识界面。左侧竖排着 14 个工具图标,重复文件、空文件夹、大文件、相似图片、相同音乐……下面那个齿轮是设置。中间一大块是结果区,底部是操作栏。不复杂,真的就这些。

第 4 步(8 分钟):按下扫描。点一下扫描按钮,就能看到进度条分阶段推进。你可以留意一下,它先是快速收集文件列表,然后进入"预哈希"阶段,最后才是"完整哈希"——这个设计是它快的核心,后面我会专门讲。

第 5 步(15 分钟):第一次面对结果。Downloads 扫出了 200 多组重复文件,占了大约 12GB。每组列表里,同一份文件的不同副本被放在一起,文件名、路径、大小一目了然。双击任意一条还能直接打开预览,确认是不是真的内容一样。

第 6 步(20 分钟):保护该留的。这才是最关键的一步。我在目录面板里把 Documents 里整理好的资料文件夹勾选为"参考文件夹"(Reference Folder),意思就是:这里的文件只作对照,永远不会被勾选删除。这样我只删 Downloads 里多出来的副本,绝不动我已经归好类的"原件"。

第 7 步(22 分钟):执行清理。每组的标题栏有个小方框,点一下就是"除保留的以外全部选中",我用的默认策略是每组留下最新的一份。确认无误后点删除——会先进回收站,还能反悔。加上后面用"空文件夹""大文件""相似图片"三个工具顺手清理的,最后统计下来,我这台电脑总共找回了约 40GB。

整个过程没有一条需要记的命令,没有一处需要"谨慎操作"的神秘选项,唯一的门槛,就是别删错文件——而它把这一点做得足够贴心。

它凭什么敢说自己"快"?三个你可能没想过的设计

市面上清理工具不少,为什么 Czkawka 值得单独写一篇?因为它把"快"这件事做到了底层。

第一,语言选择本身就是答案。它用 Rust 写,内存安全、几乎不用垃圾回收,多线程跑得又稳又快。别的同类工具有的是 Python 写的,扫描 5 万个小文件要等半天,Rust 直接快一个数量级。这不是营销话术,是语言特性决定的。

第二,它不做无用功。找重复文件最笨的办法是把每个文件完整算一遍哈希再比较,但哈希很贵。Czkawka 的做法是三级漏斗:先按文件大小分组——大小都不同的文件绝不可能是重复的,直接排除;然后在同一组里,只读文件开头和结尾各 4KB 算一个"预哈希",又排掉一大批;最后,幸存下来的少数才做完整哈希(默认是 Blake3)。绝大多数文件根本走不到最贵的那一步,这就是它扫描快的原因。

第三,它记得住。所有算过的哈希会存进缓存(在 Windows 上是%LOCALAPPDATA%\Qarmin\Czkawka\cache\),第二次扫描同一批文件时,直接读缓存,速度肉眼可见地变快。而且这个缓存是 CLI、图形界面共用的——你在这边扫过,换到那边也不白扫。

相似图片、相似视频也是同样的思路:把图像转成"感知哈希"(Perceptual Hash),内容越像,哈希越接近,再用一个"最大差异值"来控制匹配的严格程度。所以它能认出被压缩过、改过分辨率甚至加过水印的图,而传统工具只能认出一模一样的副本。

那些没人告诉你的坑

工具虽好,坑也不少。我踩过的、以及在官方 FAQ 里看到被反复问的,都替你整理好了:

坑一:为什么明明一样的文件,它却"视而不见"?先看设置里的"最小文件大小",Krokiet 默认是 16KB——小于这个尺寸的文件直接跳过。这不是 bug,是作者故意的:太小太碎的文件(比如配置文件)经常是巧合相同,扫出来只会淹没真正值得清理的大文件。想扫小文件,把下限调低即可。

坑二:视频功能点了没反应?相似视频和视频优化这两个工具需要系统里装好 FFmpeg,Krokiet 自己不带。Windows 下用winget install Gyan.FFmpeg装完,重启程序就能用。装完还是不行,检查一下ffmpeg.exe在不在 PATH 里。

坑三:界面全黑或字体糊?这是渲染后端的问题,不是程序坏了。在命令行用SLINT_BACKEND=software krokiet启动,强制软件渲染,绝大多数情况下都能救回来。别急着重装,先试这个。

坑四:网络盘上的"移到回收站"会失败。如果你扫描的是 SMB/NAS 共享目录,移动文件到回收站经常报错,因为远程文件系统没有可用的回收站位置。遇到这种情况,直接改用"彻底删除"按钮,或者接受这个限制。

坑五:别同时开两个同样的实例。同一工具的缓存文件是共用的,同时跑两个会互相踩踏,导致缓存损坏。不同工具可以并行,同一个工具别开两份。

坑六:自定义选择时,正则写不对。"选择自定义"对话框里,Windows 路径的斜杠要小心,建议用正斜杠或用转义;如果勾选了"每组保留至少一个未选中",那么即使全选也不会删光一组——这是安全机制,别以为是自己操作错了。

老手的下一站:命令行与手机端

如果你已经熟练,Czkawka 还留了几扇门:

  • 命令行自动化czkawka_cli支持全量工具,-D AEN表示"每组保留最新的,删掉其余",配合--dry-run先演练一遍,再配合定时任务,就能实现"每周自动清理下载目录"。它还会返回退出码(0 表示没找到,11 表示找到了),方便写进 CI 或脚本判断结果。
  • 把核心库当积木czkawka_core是独立的 Rust 库,有人拿它做了 Tauri 界面,有人做了 Python 绑定,还有人写了专门的网页版封装。想给你的项目加"找重复文件"的能力,直接引这个 crate 就行。
  • 手机端 Cedinia:项目还有个针对 Android 的触控前端,适合手机空间告急时救急。官方说明里也明确:由于 Android 缺 FFmpeg,视频类工具在手机上是不可用的,别在手机上找视频去重。
  • 中文翻译:界面支持多种语言,翻译不完整时也可以去项目的翻译平台帮忙补全——这也是项目作者在 README 里亲口列出的"如何帮助项目"的方式之一。

结语:清理的不是文件,是心情

C 盘那个红色警告条,其实象征的是数字时代的一种"囤积症":我们总想着"先存着,万一用得上",结果存了一堆再也不会有第二次生命的副本。Czkawka 让我觉得舒服的一点是,它把"删不删"的主动权完全交还给你——预览、参考文件夹、回收站、保留策略,每一层都在替你把关,而不是像某些"一键清理大师"那样替你做决定,顺带塞你一堆广告。

如果你也想给硬盘做一次彻底的"断舍离",就从扫一个 Downloads 目录开始。想从源码研究它怎么做到这么快的,可以拉取仓库看看(git clone https://gitcode.com/GitHub_Trending/cz/czkawka),核心逻辑都在czkawka_core目录下,官方更详细的使用说明则散落在instructions/文件夹的几份文档里,照着读一遍基本就能玩转所有功能。

今晚,给你的硬盘放个假吧。😌

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

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

← 返回列表