覆盖 GUI 基本操作、CLI 命令行、参考文件夹保护、便携模式、CI/CD 自动化等高级技巧。
Czkawka 设计简洁直观,即使第一次使用也能快速上手。整个核心流程只需三步:选择工具 → 添加扫描目录 → 点击扫描。
对于大多数用户,重复文件查找 + 相似图片识别 + 空文件夹清理三件套已经能覆盖 90% 的清理需求。建议从这三个工具开始熟悉界面。
Krokiet 是 Czkawka 的新一代 GUI,基于 Slint 框架开发,跨平台稳定。界面分为四个主要区域:
扫描完成后,状态栏会显示 Found N items in Xms,告诉您发现了多少可清理项以及耗时。在结果区,您可以使用"Select"按钮一键应用选择策略,无需逐个勾选。
常用的选择策略包括:"除最新外全选"(保留每组最新文件)、"最大/最小"(按大小保留)、"除最旧外全选"(保留每组最旧文件)等。选中后点击底部操作按钮即可处理。
支持的操作包括:Delete(永久删除)、Trash(移至回收站,可恢复)、Move(移动到指定目录)、Hardlink(硬链接替换)、Softlink(软链接替换)。建议初次使用优先选择 Trash,确保安全。
czkawka_cli 是命令行版本,适合脚本自动化、服务器运维、CI/CD 集成。每个工具对应一个子命令:
# 重复文件查找(最常用)
czkawka_cli dup -d /path/to/scan --delete-method AREF
# 相似图片查找
czkawka_cli image -d /path/to/photos --similarity-preset High
# 空文件夹查找
czkawka_cli empty-folders -d /path/to/scan
# 大文件查找(Top 50)
czkawka_cli big -d /path/to/scan --number-of-files 50
# 临时文件查找
czkawka_cli temp -d /path/to/scan
# 损坏文件检测
czkawka_cli broken -d /path/to/scan --broken-files image
每个子命令都支持丰富的参数,--help 可查看完整选项。常用的全局参数包括:
-d / --directories:要扫描的目录(可指定多个)-e / --exclude-directories:排除的目录-T / --thread-count:使用的线程数-m / --minimal-file-size:最小文件大小(字节)-p / --allow-partial-hash:启用预哈希加速-f / --file-to-save:将结果保存到文件-Q / --quiet:Dry Run 预演模式,只显示不执行这是 Czkawka 最实用的进阶功能之一。场景:您有一份完整的照片备份在 /backup/photos,工作目录 /work/photos 中可能有重复副本。您想清理重复,但绝对不能删除备份中的文件。
使用参考文件夹功能,您可以:
/backup/photos 添加为"参考文件夹"(Reference Folder)/work/photos 添加为普通"包含文件夹"这在备份去重、主从数据同步、版本管理场景下极其有用。CLI 中通过 --ref-directories 参数指定参考文件夹:
czkawka_cli dup \
-d /work/photos \
--ref-directories /backup/photos \
--delete-method AREF
提示:参考文件夹功能仅在重复文件、相似图片、相同音乐等"对比类"工具中可用,因为它需要明确的主从关系。
Czkawka 会自动缓存哈希计算结果、图片缩略图、视频分析结果到本地共享目录。第二次扫描相同文件时,可直接复用缓存,速度提升数倍甚至数十倍。
~/.cache/czkawka,macOS ~/Library/Caches/czkawka,Windows %LOCALAPPDATA%\czkawka高级用法:将一台机器扫描大容量 NAS 后的缓存文件复制到另一台机器,第二台机器扫描相同 NAS 时将直接复用缓存,无需重新计算哈希。这对运维团队协作尤其有用。
注意:不能同时运行同一工具的两个实例,否则会损坏缓存文件。但可以同时运行不同工具(如同时扫描重复文件和相似图片),因为它们使用独立的缓存。
需要在不同机器之间使用 Czkawka?便携模式让您把配置和缓存放在 U 盘同目录,即插即用,不留痕迹。设置以下两个环境变量即可:
# Linux / macOS
export CZKAWKA_CACHE_PATH=/media/usb/czkawka_cache
export CZKAWKA_CONFIG_PATH=/media/usb/czkawka_config
./krokiet
# Windows (PowerShell)
$env:CZKAWKA_CACHE_PATH = "D:\czkawka_cache"
$env:CZKAWKA_CONFIG_PATH = "D:\czkawka_config"
.\krokiet.exe
这样所有缓存、配置、历史记录都保存在 U 盘指定目录中,主机的用户目录完全不被影响。适合以下场景:
硬链接(Hardlink)是 Czkawka 最巧妙的功能之一。它可以将重复文件替换为指向同一份数据的硬链接——所有文件名依然存在、所有路径依然可访问,但磁盘上只占一份空间。
典型场景:开发项目中有大量重复的依赖文件(node_modules、构建产物、SDK 副本)。删除会破坏项目,但用硬链接替换后,所有项目依然能正常运行,磁盘占用却大幅减少。
# CLI 使用硬链接替换重复文件
czkawka_cli dup -d /path/to/scan --delete-method HARDLINK
GUI 中选择"Hardlink"操作按钮即可。建议先在测试目录中试用一次,确认行为符合预期后再用于生产环境。
czkawka_cli 设计为脚本友好,可直接集成到 cron、systemd timer、CI/CD pipeline 中。以下是几个典型用法:
每周定时扫描并生成 JSON 报告:
# crontab -e
0 2 * * 0 czkawka_cli dup -d /data --file-to-save /var/log/czkawka-$(date +\%Y\%m\%d).json
CI 中检测空文件(退出码 11 表示发现空文件):
czkawka_cli empty-files -d ./build
if [ $? -eq 11 ]; then
echo "发现空文件!构建产物异常"
exit 1
fi
导出 JSON 供自定义脚本处理:
czkawka_cli dup -d /data -p --file-to-save report.json
python3 analyze.py report.json # 自定义分析
所有工具都支持 -f 参数导出结果到文件,格式包括纯文本和 JSON。JSON 格式结构清晰,易于程序解析。退出码语义明确,便于脚本判断扫描结果。
Czkawka 涉及文件删除操作,安全使用至关重要。请遵循以下原则:
-Q 参数预览将要执行的操作,确认无误后再正式执行关于杀毒软件误报:Rust + LTO 编译的二进制偶尔会被杀毒软件误判。这是已知现象,二进制由 GitHub Actions 从开源代码构建,可在 VirusTotal 核实多数引擎判定为干净,Windows Defender 中选择"更多信息 → 仍要运行"即可。