news 2026/9/3 13:27:52

Czkawka完整指南:4步找出重复文件,把冗余空间释放出来

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Czkawka完整指南:4步找出重复文件,把冗余空间释放出来

Czkawka完整指南:4步找出重复文件,把冗余空间释放出来

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

Czkawka 是一款用 Rust 编写的免费开源重复文件清理工具,可在 Windows、macOS、Linux、FreeBSD 和 Android 上运行。除了重复文件查找,它还覆盖相似图片、重复音乐、空文件夹、损坏文件等排查场景。所有扫描都在本地完成,程序本身不具备联网功能,不会上传任何文件信息。

从“存储已满”的提示说起

我接触这个工具的动机很实际:磁盘占用率逼近上限,开始找空间。最先翻到的是下载目录里一排“副本”“副本 (2)”“副本 (3)”,接着是各种 .bak、.tmp 残留。手动翻找效率太低,我需要一个能直接告诉我“哪些文件冗余、占了多少空间”的东西。

Czkawka 的思路就是如此:主窗口(当前推荐的前端叫 Krokiet)左侧列出 14 个工具,每个工具只需添加要扫描的目录、点一下扫描,结果就会按组返回。引擎用多线程并行读取文件,几百 GB 混合文件的目录我实测几分钟能跑完。

安装前,先选对版本

项目里只有一个共享的扫描核心(czkawka_core),前端分成几种形态,按用途挑即可:

前端定位备注
Krokiet当前推荐的图形界面Slint 框架,自包含单一二进制,持续更新
Czkawka CLI命令行版面向脚本、服务器、定时任务
Cedinia安卓端应用因 Android 缺少 ffmpeg,视频类工具不可用
Czkawka GUI(GTK)旧版界面已冻结在 12.0,不再出新版本

桌面端直接用 Krokiet 就行,它是项目现在唯一持续投入的方向。官方提供预编译二进制,解压即用,不需要额外环境;Linux 下先给文件加执行权限,macOS 若提示“来自身份不明开发者”,右键选择打开即可。我踩过两个坑,提前说明:

  • 窗口黑屏或渲染不出来:通常是显卡兼容问题,设置环境变量SLINT_BACKEND=software用软件渲染启动,基本都能恢复;
  • Windows 杀毒软件可能对 Rust 编译的二进制报警:只要是从官方发布渠道下载,确认来源后可放行。

唯一需要额外安装依赖的功能是“相似视频”,需要系统里有 ffmpeg(Linux 用sudo apt install ffmpeg,macOS 用brew install ffmpeg)。其余功能开箱即用。更多安装与平台细节见 Krokiet 使用文档。

最快完成首次重复文件扫描

第一次使用按这四步走:

  1. 添加扫描路径。点操作栏的文件夹图标打开目录面板,把要检查的目录加进“包含路径”。默认排除规则已经跳过回收站、.git 等目录,所以直接扫整个用户目录也没问题;不想全盘扫就选几个大目录。
  2. 选“重复文件”工具。默认比对方式是按内容哈希(默认算法 Blake3),这是最可靠的一种;按文件名、按大小比对误报多,只适合快速摸底。
  3. 留意最小文件大小。Krokiet 默认忽略 16 KB 以下的文件,这是新手最容易疑惑的点:你确定存在的几个小文件重复项不出现在结果里。需要扫小文件的话,到设置里把最小尺寸调低。
  4. 看结果并选择处理方式。结果按“内容相同”分组,自动选择项(如“除最新外全选”)每组都会至少留一个文件,不会把整组清空。

两个默认行为值得知道:硬链接(多个文件名指向同一份内容)默认只算一个,不会误报为重复;符号链接不会被跟随,链接指向的重要文件不会因为扫描被牵连。

按场景挑对清理工具

相似图片:找出“不完全一样”的图

重复文件工具只认内容完全一致的哈希,而手机相册里更常见的情况是:同一张照片的不同分辨率版本、压缩过的转发版、带水印的截图。相似图片工具用感知哈希处理这类场景。Krokiet 的默认参数是最大差异 10、哈希尺寸 16、Mean 算法;如果结果里混进明显不同的图,把最大差异调到 4–5,或把哈希尺寸升到 32/64 并换 Gradient 算法。要连镜像翻转、旋转 90 度的版本也找出来,可以开启“几何不变性”,代价是扫描变慢。

重复音乐:标签还是内容

默认按标签(标题、艺术家)找重复,速度快;改成“指纹”模式则是解析音频内容做比对,能抓住改过文件名、没打标签的文件,但明显更慢。

相似视频:抽帧比对

原理是采样视频帧、按时间窗口做视觉哈希,需要系统先装好 ffmpeg。界面提供几档预设(近似相同/相似/电影长跳过),不用自己调一堆滑杆;找不到真正重复时,优先调大“扫描时长”和“窗口数”,而不是急着放松差异阈值。

小杂项一次说清

  • 空文件夹:递归判断,子目录清空后父目录也会被连带找出来;
  • 临时文件:匹配 .bak、.tmp、.crdownload 等常见残留模式,模式列表可改;
  • 大文件:按数量列出最大的文件,适合“先砍掉最大的”式清理;
  • 损坏文件:尝试用对应库打开音频、PDF、压缩包等,打不开就列出来——这类结果可能有误报,删除前自己先打开确认;
  • 错误扩展名 / 错误文件名:按文件头魔数检测真实类型,结果里给出建议的新扩展名,可以直接一键重命名;
  • Exif 清除:找出带 GPS、拍摄设备等元数据的图片,发布照片前用它脱敏很方便。

怎么保护原文件不被误伤

清理工具最大的风险不是“找不到”,而是“删错了”。Czkawka 给了三层保护:

参考路径。把目录加入后勾选该行的 Ref(参考)复选框,这个目录里的文件只参与比对、永远不可被删除或移动。典型用法:主图库设为参考路径,下载目录设为普通路径,扫完只删下载目录里的重复副本。注意一点:设置了参考路径后,只有包含至少一个参考文件的组才会显示,两组都在普通目录里的重复不会列出。

回收站与永久删除分开。操作栏上“移入回收站”和“删除”是两个独立按钮。网络盘(NFS、Samba)上回收站机制经常失效,遇到“删除 0 项”的报错,改用永久删除即可。

硬链接是折中方案。空间紧张但不敢删时,可以把重复文件替换为硬链接:多个名字指向同一份数据,磁盘只占一份。硬链接不能跨分区,跨分区的组会报错并保留原文件,不会造成数据丢失。

我的习惯是:批量操作前先用自动选择预览一遍选中项,确认参考目录里的文件一个都没被选中,再执行删除。

让第二次扫描变快

缓存是共享的。所有前端(GUI、CLI)共用同一份缓存,Linux 下位于~/.cache/czkawka/,存的是哈希、缩略图等计算结果而非文件内容,几百 TB 的量级也只会产生几百 MB 的缓存。扫过一次的文件再扫,速度提升明显。

prehash 两级哈希。Krokiet 默认开启:先算文件首尾一小段的快速部分哈希,排除掉“绝不可能是重复”的文件,再对剩下的算完整哈希。这是大目录里重复扫描变快的主要原因。

几个实用细节:

  • 扫描中途点停止,已算出的哈希照样写入缓存,下次全量扫描仍然受益;
  • 缓存加载变慢时,删掉对应的缓存文件(如cache_similar_image_*.bin)即可,下次扫描会重建;
  • 线程数在设置里可调,CLI 里用-T <数量>限制,CPU 占用想压低就调小;
  • 想把配置和缓存挪到 U 盘做便携版,设置环境变量CZKAWKA_CONFIG_PATHCZKAWKA_CACHE_PATH指到 U 盘路径即可,所有前端通用。

用 CLI 写定期清理脚本

GUI 之外,czkawka_cli 把全部工具做成了子命令,适合放进计划任务。先看两条最关键的命令:

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

第一条是预演(-Q只打印将执行的操作,不动文件),第二条真正执行:-D AEN表示每组保留最新文件、处理其余副本,-y表示移入回收站而非永久删除。脚本里务必先跑预演再跑真删。

几个写脚本时常用的点:

  • CLI 默认不会应用 GUI 的排除规则,跳过回收站要自己加-E '$TRASH'(加引号防止 shell 展开),想套用 GUI 全套默认排除用-E DEFAULT
  • -p输出格式化 JSON,方便交给其他脚本处理;
  • 退出码有讲究:0 表示没找到,11 表示找到了匹配项,写自动化判断时别按 0/1 处理;
  • 参数速查看 CLI 指令文档,完整标志表都在里面。

回到最初的问题:空间满了以后怎么办。现在的答案是——先让 Czkawka 告诉你空间被谁占着(重复文件、临时残留、失效链接、膨胀的大文件),用参考路径圈住不能动的原件,把可恢复的移进回收站,再把重复扫描交给 CLI 定期跑。工具本身不联网、MIT 许可(核心库)开源可审计,剩下的只是每周花十分钟看一眼结果。

遇到窗口黑屏、ffmpeg 找不到、Flatpak 包过时这类具体问题,项目自带一份从真实 issue 整理出来的 FAQ,比我这里写得更全。

【免费下载链接】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/3 13:26:51

小模型横评怎么选?从端侧推理到小程序部署的实用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 13:25:27

基于身份的加密(IBE)原理与C++实现:从Boneh-Franklin方案到工程实践

简介&#xff1a;本资源是一套基于身份的加密&#xff08;IBE&#xff09;算法完整C实现&#xff0c;面向密码学学习者、信息安全开发者及高校相关专业师生&#xff0c;解决传统公钥基础设施中证书管理复杂、密钥分发困难等痛点&#xff0c;特别适用于云计算、物联网等动态网络…

作者头像 李华
网站建设 2026/9/3 13:25:21

单片机毕设项目:基于 STM32 与 ESP8266 的智能柜体环境调控系统实现 基于 STM32 的传感器数据采集智能柜体控制系统开发(013006)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机&#xff0c;Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华
网站建设 2026/9/3 13:21:29

用产品思维拆解网文设定:重生与穿越如何构建故事模型

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 13:20:04

每日一题、免注册、多选:Atlas式轻量网页游戏的纯前端实现

在 Hacker News 的 Show HN 栏目里&#xff0c;每天都有大量新项目出现&#xff0c;大部分看一眼就关掉了。但 Atlas 这个项目的一句话标题足够特别&#xff1a;like GeoGuessr but multiple choice, daily, no sign-up。这句话把产品形态、使用节奏、注册门槛一次说完了&#…

作者头像 李华
网站建设 2026/9/3 13:17:21

持久化智能体与去拟人化设计:从聊天玩具到生产级AI Agent

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华