Czkawka 免费磁盘清理工具完整指南:快速找出重复文件与相似图片
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
Czkawka 是一套用 Rust 编写的开源磁盘清理工具:重复文件查找、相似图片识别、空文件夹清理等 14 个扫描工具共用同一个核心库,完全离线运行,支持 Windows、macOS、Linux 和 Android。装好它,你几分钟内就能看到第一次扫描结果。
三分钟跑起来:安装与首次扫描
目标是尽快让结果出现在屏幕上,所以下面把安装和第一次扫描合并讲。
主推方式:装 Krokiet 前端
Krokiet 是当前主推的图形界面(基于 Slint 开发),一个自包含的可执行文件,下载即用,不需要额外运行库。
- Windows:下载
windows_krokiet_*预编译包,双击运行.exe; - Linux:下载
linux_krokiet_x86_64,执行chmod +x linux_krokiet_x86_64 && ./linux_krokiet_x86_64(给它执行权限再启动); - macOS:下载对应芯片的包,
chmod +x后直接运行;若被系统拦下,右键选"打开"。
如果你习惯包管理器,也可以走 Rust 官方仓库一键安装:
cargo install krokiet --locked这一条命令会从 crates.io 拉取源码并编译出最新版 Krokiet,装完krokiet命令就在全局可用。
备选方式:自己编译
想要最新特性或自定义功能时,克隆仓库再编译:
git clone https://gitcode.com/GitHub_Trending/cz/czkawka cd czkawka cargo build --release --bin krokiet第三行意思是:用 release 模式编译 Krokiet,产物在target/release/krokiet。可选的 HEIF/RAW/AVIF 图像支持需要加--features "heif,libraw,libavif"并安装对应系统库,仓库里的 misc/install_scripts/ 提供了各平台一键安装依赖的脚本。
首次扫描步骤
以"找出重复文件"为例,第一次使用按这个顺序走:
- 打开 Krokiet,左侧工具列表选Duplicate Files(重复文件);
- 点操作栏右侧的文件夹图标,打开目录面板,把要扫的目录加入Included paths(扫描范围);
- 比对方式保持默认Hash(按内容哈希,最准确),点Scan;
- 扫完后状态栏会显示 "Found N items in Xms",结果按组列出,组内第一个文件就是建议保留的副本。
第一次扫建议只选 1~2 个目录(比如文档和下载目录),别直接扫全盘——硬盘容量越大,首次全量哈希耗时越长。
挑重点功能深讲
14 个工具里,重复文件、相似图片、相似视频是大多数人真正会反复用的三个。每个只回答三件事:什么时候用、怎么用、注意什么。
重复文件查找:先过大小关,再过哈希关
什么时候用:下载目录反复下载同一安装包、多个项目间复制了相同素材时,这是收益最高的一个工具。
怎么用:工具支持 Hash、Size、Name 三种比对方式,默认 Hash(可选 Blake3/CRC32/XXH3,默认 Blake3)。扫描分两级:先按文件大小分组,再对同大小文件算预哈希(只读文件头尾各 4 KB),预哈希一致才算完整哈希——所以大量明显不同的文件根本不会被完整读一遍。结果出来后,用Select按钮选"Except newest"之类的策略,再点Trash进回收站,或直接Delete。
注意什么:
- Krokiet 默认最小文件大小是16 KB,更小的文件不参与比对。这是有意为之——全盘扫描时大量几 KB 的小文件(图标、配置片段)经常"碰巧相同",会把真重复淹没掉。想扫小文件就去 Settings 里把最小值调低;
- Hard link 默认被隐藏:同一 inode 的两个文件名只算一次,不会产生假重复。确有需要可在设置里关闭 "Hide hard links";
- 删除前先确认没选错组,Trash 进回收站比永久删除可挽回,网络盘(NFS/SMB)上没有回收站,只能用永久删除。
相似图片识别:找"看起来一样"的图
什么时候用:照片库里有连拍、改过分辨率、加过水印、重新压缩过的版本时。重复文件工具认不出它们(内容字节不同),这个工具认得出。
怎么用:选Similar Images,右侧子设置里几个关键项:
| 设置 | 默认值 | 作用 |
|---|---|---|
| Hash size | 16 | 感知哈希尺寸,可选 8/16/32/64,越大越精确 |
| Max difference | 10 | 允许的最大差异,调高=更宽松,调低=更严格 |
| Geometric invariance | Off | 打开后可识别镜像翻转、旋转 90° 的变体 |
| Ignore images with same size | Off | 跳过字节大小完全相同的组(那种归重复文件管) |
扫完后右侧预览面板可以逐组对比,手动挑出每组要保留的一张,其余删除。
注意什么:误报多就把 Max difference 降到 4~5,并把 hash size 提到 32 或 64;漏报多则反向调。灰度图会匹配到彩色原图(感知哈希基于亮度),这类结果需要你人工过目。默认支持 JPEG、PNG、BMP、TIFF、WebP 等;HEIC/AVIF 需要带对应 feature 的构建。
相似视频检测:给 TB 级素材库做减法
什么时候用:同一部视频换了编码、换了分辨率存了好几份,或者想把"素材库里已经有的片段"筛出来时。
怎么用:选Similar Videos,先确认系统装了ffmpeg(Linux:sudo apt install ffmpeg;macOS:brew install ffmpeg;Windows 可用choco install ffmpeg或把ffmpeg.exe放进 PATH)。没有它这个工具直接不可用。右侧提供 Custom / Near-identical / Similar / Movies 四个快速预设,分别对应不同的 Max difference、采样窗口数等参数;也可以用顶部的Compare by audio fingerprint切换到按声音指纹比对的模式。
注意什么:视频签名按"处理参数"缓存,你改了采样时长、窗口数这类参数,下次扫描会重新处理所有视频,耗时明显;而 Max difference 这类只影响归组的参数不会触发重算。找"重新编码的同一部片"效果好,想靠它找"画面有几处相似的不同片子",不现实。
功能全貌
其余工具一行一个,需要时再到 instructions/Instruction_Krokiet.md 查细节:
| 工具 | 干什么用 |
|---|---|
| Empty Folders | 递归找出完全空的目录,连带"子目录清完后变空"的目录 |
| Empty Files | 找 0 字节文件,可选扩展检查"全是空字节/不可见字符"的文件 |
| Big Files | 按大小排序,找出前 N 个(默认 50 个)最大的文件 |
| Temporary Files | 按可编辑的模式清单(.tmp、.bak、.crdownload、thumbs.db等)找临时文件 |
| Same Music | 按 ID3 标签或音频指纹找同一首歌的不同版本(不同码率/封面) |
| Invalid Symlinks | 找出指向不存在目标或成环的符号链接 |
| Broken Files | 检测打不开/已损坏的文件,默认开音频、字体、JSON/XML/TOML,可选 PDF、压缩包、图片、视频 |
| Bad Extensions | 按文件头(magic bytes)判断内容与扩展名是否对得上,支持一键按建议重命名 |
| Bad Names | 找名字有问题的文件:大写扩展名、emoji、首尾空格、非 ASCII 字符等,并给出修正建议 |
| Exif Remover | 找出含 EXIF 元数据(拍摄时间、GPS 等)的图片,选中后用Clean批量清除 |
| Video Optimizer | 裁掉视频黑边/静态区域,或把旧编码转成更高效格式(跳过 h265/av1/vp9) |
调教出你的用法
三个进阶技巧,用上一次,之后每次扫描都省事。
1. 缓存和预哈希:第二次扫描快得多
所有前端(CLI、Krokiet、旧 GTK)共享同一个缓存目录,Linux 在~/.cache/czkawka/,里面是cache_duplicates_HASH.txt、cache_similar_image_SIZE_HASH_FILTER.bin这类已算好的哈希和缩略图。Krokiet 默认开启缓存和预哈希,重扫同一目录时只有新增和变动的文件需要重新计算。注意:扫描可以中途 Stop,已算完的哈希照样写进缓存,下次接着用。
2. 用 Reference 路径保护"原件"
在目录面板里,每个 Included path 旁有个Ref勾选框。勾上的目录只参与比对、绝不被删除——典型用法:把整理好的主照片库勾成 Reference,把下载目录作为普通路径加入,扫完"选除最新外全部"再删,永远不会误伤原件。CLI 里对应-r参数(每个目录要单独传一个-r)。
3. 预设 + 定时任务
Krokiet 支持多个 Preset,每个预设独立存扫描目录、扩展名过滤、工具参数,配置文件在~/.config/krokiet/config_preset_N.json——给"扫照片"和"扫项目目录"各建一个,切换零成本。
自动化则交给 CLI。把结果写成 JSON 报告挂进 crontab,每周一自动跑:
czkawka_cli dup -d /home/user/Downloads -d /home/user/Documents \ -p /home/user/logs/duplicates_$(date +%Y%m%d).json -N -M -W意思是:扫下载和文档两个目录,结果按日期存成 JSON,-N -M静默输出,-W保证"找到文件"时退出码也是 0 不会触发告警。真要删的时候,先用-D AEN -Q(dry-run,只预览不动手)确认列表,没问题再实删。
快问快答
Q1:Krokiet 窗口全黑或打不开怎么办?多半是 GPU 驱动和渲染后端不兼容。先试软件渲染:Linux/macOS 执行SLINT_BACKEND=software ./krokiet(Windows 在系统环境变量里设置SLINT_BACKEND=software后重启)。预期结果:窗口正常显示,只是渲染稍慢。还不行就下载all_backends构建,用它里面的各个启动脚本逐个试。
Q2:明明有两个一样的小文件,为什么没被找出来?检查 Settings 里的最小文件大小,默认 16 KB,比这小的文件直接跳过。把它调低(比如 0 或 1)重扫。预期结果:小文件重复组出现在结果列表里;副作用是小文件"碰巧相同"的噪音也会变多。
Q3:Similar Videos 提示找不到 ffmpeg?Krokiet 和 CLI 不自带 ffmpeg,需按系统装:Linuxsudo apt install ffmpeg,macOSbrew install ffmpeg,Windows 用choco install ffmpeg或把ffmpeg.exe放到 Krokiet 同目录/PATH。装完重启应用,预期结果:工具可正常启动扫描。
Q4:怎么确保删除环节不出意外?三步:先给重要目录加排除项(目录面板的 Excluded Paths,或 Excluded items 里写*/.git这类通配);删除走Trash进回收站,确认无误再从回收站彻底清;CLI 场景一律先-Qdry-run 看一遍将要删的清单再执行。预期结果:即使选错策略,文件也只是进了回收站,可恢复。
结语
别从全盘扫起,先挑一个目录试水:把下载文件夹加进 Included paths,跑一遍 Duplicate Files,看看里面到底攒了多少个安装包副本。有感觉之后,再照上面的步骤把照片库的相似图片清理安排上。
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考