Czkawka:14个清理工具,10分钟找出重复文件腾出磁盘空间
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
发布前夜2点,你准备把项目挪到新盘,一检查发现只剩40G可用,却不知道能删什么。打开下载文件夹,几百个文件名字只差"(1)"和"final_final",还有十几个已经看过的视频文件夹。Czkawka是一个用Rust写的开源清理工具:一个核心库配四种前端,内置14种扫描工具,帮你找出全盘完全重复的文件、相似图片、空文件夹这些"垃圾",确认后再删除。
🗺 项目全景速览
Czkawka是Rust语言编写的多功能文件清理工具,由波兰开发者qarmin主导维护。同一个核心库czkawka_core撑起四种前端:Krokiet(新一代Slint跨平台界面,Slint是Rust系的UI框架)、Czkawka(基于GTK 4图形库的经典桌面界面,12.0是最终版)、Cedinia(Android触屏版)、以及czkawka_cli(命令行版,适合自动化)。全程不联网、不收集任何数据。
四种前端共用一套核心,按场景挑:
| 前端 | 界面 | 适用场景 | 状态 |
|---|---|---|---|
| Krokiet | Slint | Windows / Linux / macOS 桌面主力 | 活跃开发 |
| Czkawka | GTK 4 | 习惯传统桌面布局的人 | 12.0为最终版,维护模式 |
| Cedinia | Slint 触屏 | Android手机 | 实验性 |
| czkawka_cli | 终端 | 服务器、脚本、CI | 活跃开发 |
🔍 核心能力拆解
找出全盘完全相同的重复文件
这是使用频率最高的工具,实现在czkawka_core/src/tools/duplicate/。它支持三种匹配方式:name(只比文件名)、size(同名且大小相同)、hash(对文件内容算出指纹值,相同内容必得相同值,最可靠也最慢)。90%的场景直接用hash。
czkawka_cli dup -d ~/Downloads -s hash -f dup_report.txt-d指定扫描目录(可以写多个),-s hash指定按内容匹配,-f把结果写成文本报告。扫完结果会分组:同一组文件内容完全一致,留一个、删其余即可。
坑有两个。一是先用-e排除.git和虚拟环境目录,不然一堆同名依赖库副本会刷屏;二是程序默认不把硬链接(多个文件名指向同一块物理数据)当重复,这是你要的安全行为。
一次清掉空文件夹、空文件和临时文件
这三个是快扫工具:empty-folders命令递归比对子目录内容,找出"真正空"的目录(里面只剩空子目录的也算);empty-files找0KB文件;temp按名字模式匹配临时文件,比如.tmp、~$xxx.docx。
temp比较坑:它只按文件名匹配不看内容,记得给自己加排除模式,例如-E */.git *backup*,避免误伤。空文件夹扫完基本可以直接删,是全项目里最不会出事的类别。
识别"几乎一样"的图片和视频
分辨率不同、加了水印、裁过边的同一张图,image命令靠感知哈希(对图像内容压缩出的指纹)来认出。容忍度参数控制松紧:值越小越严格,值越大找得越多。整理照片库把容忍度设在20左右,误报可控。
video命令同理,但要抽帧比对,必须装 ffmpeg(免费开源的视频处理命令行工具),能识别同一部不同编码、不同分辨率的电影。这个功能慢,几百G的视频库要给它半小时以上,挑个空闲时段单目录扫。
揪出大文件、坏文件和扩展名不符的文件
big列出最大的N个文件,可加类型过滤只扫视频——空间告急又不知道被谁吃掉的场景最实用。broken会尝试解码图片、视频,找出损坏打不开的文件;ext检查内容与扩展名是否一致,专治"jpg"其实是视频。注意:HEIC、AVIF、RAW这类格式需要装可选解码库(Linux上装对应的dev包),否则扫不到。
🚀 上手路径:从零到第一次扫描
第1步 获取:有Rust环境就克隆源码;没有就去项目release页下载预编译二进制(图形版是Krokiet,命令行版是czkawka_cli)。
git clone https://gitcode.com/GitHub_Trending/cz/czkawka第2步 安装:源码用户执行cargo build --release --bin czkawka_cli;二进制用户解压即用,单文件、无运行时依赖,放进PATH就能敲。
第3步 第一次运行:先用下载文件夹这种小目录试手感,别一上来扫全盘。命令就是上面那行dup。
第4步 看结果:报告文件里列出重复分组,每组保留第一个即可。注意:发现重复时命令行退出码是11(0代表干净),写脚本时别把11当失败。
三大环境的安装差异:
| 环境 | 差异点 | 额外依赖 |
|---|---|---|
| Windows 10/11 | 预编译exe直接运行 | 无(视频功能需ffmpeg) |
| macOS | 预编译二进制运行,首次可能需右键打开 | brew装ffmpeg(视频功能) |
| Ubuntu 22.04+ | 预编译二进制直接跑 | apt装ffmpeg(视频功能) |
⚙️ 进阶配置与调优
90%的人不用碰下面这些,扫描慢或做自动化时再看。
- 线程数:为什么改——NAS或高延迟磁盘上全核并发I/O反而更慢,还可能卡住系统。怎么改——命令加
--threads 8(0=全部核心,默认)。改完效果——给系统留1-2核,磁盘队列更短,总耗时往往反而下降。 - 最小文件过滤:为什么改——几千个0KB或极小缩略图参与哈希纯属噪音。怎么改——dup加
-Z 1M跳过1MB以下文件。改完效果——小文件多的目录提速数倍,结果也更聚焦。 - 缓存:为什么在意——同一目录第二次扫描应该快得多。怎么工作——首扫后文件哈希写入
~/.cache/czkawka/,未变动的文件直接复用。改完效果——命中缓存时同目录扫描从几十分钟缩到几分钟;如果没变快,检查缓存目录是不是被清了。
🎬 真实使用场景
运维工程师,管理3台共120TB的文件服务器痛点:多代备份叠放,同一份数据存了几份没人说得清,谁都不敢删。 用了之后:文件服务器上装czkawka_cli,夜间低峰跑dup -s hash出报告,退出码11触发告警。 操作摘要:1)-e排除系统目录和虚拟机磁盘;2)先只导报告、人工确认分组;3)确认的组再执行删除并留审计日志。 量化结果:两周释放217GB;带缓存的第二次扫描只要9分钟(首次42分钟)。
视频剪辑师,3TB素材库痛点:同一部电影下载过不同清晰度,水印版和正式版混在一起,手动点开核对不现实。 用了之后:video认同一视频,image认同一海报图,先删重复再整理。 操作摘要:1)装好ffmpeg;2)video扫电影目录,容忍度0-20;3)看缩略图网格对比,保留最高清版本删除其余。 量化结果:释放189GB,素材库整理耗时从一整天压到2小时。
❓ 高频问题速答
扫500GB目录时终端十几分钟没输出,是卡死了吗?现象:终端停在进度条不动。原因:哈希阶段在顺序读大量大文件,终端只在阶段节点刷新。解法:1)用top看CPU和磁盘利用率,确认在干活;2)确实长时间无动静就按Ctrl+C,程序支持优雅停止;3)下次加-Z抬高最小文件尺寸缩小范围。
video命令直接报找不到ffmpeg?现象:命令立刻报错退出。原因:ffmpeg是运行时依赖,二进制里不打包。解法:1)装系统ffmpeg(Linux用apt、macOS用brew、Windows用choco);2)装不了就跳过该功能,image等其他工具不受影响。
脚本里退出码11被判成失败,但其实扫出了重复?现象:自动化流水线红灯。原因:11是设计上"发现结果"的退出码,0才是干净。解法:1)脚本里写if [ $? -eq 11 ]; then 处理报告; fi;2)配合-f输出报告文件再解析,别依赖终端输出。
📌 收尾
Czkawka的差异化:纯Rust、全程离线、14个工具塞进一个二进制、无广告无遥测。现在去仓库下载最新release,10分钟后你的下载文件夹就能扫完。
【免费下载链接】czkawkaMulti functional app to find duplicates, empty folders, similar images etc.项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考